일시적 실행 CPU 취약점

일시적 실행 CPU 취약점()은 취약점으로, 일반적으로 투기적 실행을 사용하여 최적화된 명령이 마이크로프로세서에 의해 예측 오류 또는 오류로 인해 결과가 커밋되지 않고 일시적으로 실행되어 무단 당사자에게 비밀 데이터를 유출하게 되는 취약점이다. 원형은 스펙터이며, 스펙터와 같은 일시적 실행 공격은 여러 측면 채널 공격 범주 중 하나인 캐시 공격 범주에 속한다. 2018년 1월 이후로 다양한 캐시 공격 취약점이 확인되었다.

 개요 
최신 컴퓨터는 매우 다른 성능 특성을 가진 구성 요소로 이루어진 고도로 병렬적인 장치이다. 이전의 느린 작업(예: 메모리 읽기)이 아직 완료되지 않아 어떤 작업(예: 분기)을 아직 수행할 수 없는 경우, 마이크로프로세서는 이전 작업의 결과를 예측하고 예측이 올바른 것처럼 이후 작업을 투기적으로 실행할 수 있다. 이 예측은 시스템의 최근 동작을 기반으로 할 수 있다. 이전의 느린 작업이 완료되면 마이크로프로세서는 예측이 올바른지 또는 잘못되었는지 판단한다. 만약 올바르면 실행이 중단 없이 진행되고, 잘못되었으면 마이크로프로세서는 투기적으로 실행된 작업을 롤백하고 느린 작업의 실제 결과로 원래 명령을 반복한다. 특히, 일시적 명령은 프로세서에 의해 오류로 처리되는 명령(스펙터의 경우 분기 예측기 비난)을 의미하며, 이는 프로세서의 마이크로아키텍처 상태에 영향을 미칠 수 있지만, 아키텍처 상태에는 실행 흔적을 남기지 않는다.

컴퓨터의 직접적으로 보이는 동작 측면에서는 투기적으로 실행된 코드가 "결코 발생하지 않은" 것처럼 보인다. 그러나 이 투기적 실행은 캐시와 같은 마이크로프로세서의 특정 구성 요소 상태에 영향을 미칠 수 있으며, 이 효과는 후속 작업의 타이밍을 주의 깊게 모니터링하여 발견할 수 있다.

공격자가 (공격자가 직접 작성했거나 대상 시스템에서 발견한 적절한 가젯일 수 있는) 투기적으로 실행된 코드가 무단으로 액세스할 수 없는 비밀 데이터를 작동하도록 배열하고, 비밀 데이터의 값에 따라 캐시에 다른 영향을 미 미치도록 할 수 있다면, 비밀 데이터의 값을 발견할 수 있다.

 연혁 
 2018년 
2018년 1월 초, 1995년 이후 제조된 모든 인텔 CPU (인텔 아이테니엄 및 2013년 이전의 인텔 아톰 제외)가 멜트다운 및 스펙터라는 두 가지 보안 결함의 영향을 받는 것으로 보고되었다.

소프트웨어 패치로 인한 성능 영향은 "워크로드에 따라" 달라진다. 스펙터 및 멜트다운 보안 취약점으로부터 개인용 컴퓨터 및 관련 장치를 보호하는 데 도움이 되는 여러 절차가 발표되었다. 스펙터 패치는 특히 구형 컴퓨터에서 성능을 크게 저하시키는 것으로 보고되었으며, 최신 8세대 코어 플랫폼에서는 2~14%의 벤치마크 성능 저하가 측정되었다. 멜트다운 패치도 성능 손실을 초래할 수 있다. "수억 대"의 시스템이 이러한 결함의 영향을 받을 수 있는 것으로 추정된다.

2018년 5월 3일, 2018년 8월 14일, 2019년 1월 18일, 2020년 3월 5일에 추가 보안 결함이 공개되었다.

당시 인텔은 이 문제에 대해 언급하지 않았다.

2018년 3월 15일, 인텔은 스펙터 보안 취약점으로부터 보호하기 위해 CPU를 재설계할 것이며 (성능 손실은 미정), 2018년 말에 새로 재설계된 프로세서를 출시할 예정이라고 보고했다.

2018년 5월 3일, 8개의 추가 스펙터급 결함이 보고되었다. 인텔은 이러한 결함을 완화하기 위한 새로운 패치를 준비 중이라고 보고했다.

2018년 8월 14일, 인텔은 L1 터미널 폴트(L1TF)라고 불리는 세 가지 추가 칩 결함을 공개했다. 인텔은 이전에 출시된 마이크로코드 업데이트와 새로운 사전 출시 마이크로코드 업데이트를 사용하여 이러한 결함을 완화할 수 있다고 보고했다.

 2019년 
2019년 1월 18일, 인텔은 모든 인텔 CPU에 영향을 미치는 "Fallout", "RIDL", "ZombieLoad"라는 세 가지 새로운 취약점을 공개했으며, 이는 프로그램이 최근에 기록된 정보를 읽고, 라인 채우기 버퍼 및 로드 포트의 데이터를 읽고, 다른 프로세스 및 가상 머신에서 정보를 유출할 수 있도록 한다. 스펙터에 대한 하드웨어 완화로 인해 커피레이크 시리즈 CPU는 더욱 취약하다.

 2020년 
2020년 3월 5일, 컴퓨터 보안 전문가들은 멜트다운 및 스펙터 결함 외에 시스템 이름  (또는 "인텔 CSME 버그")을 가진 또 다른 인텔 칩 보안 결함을 보고했다. 이 새로 발견된 결함은 펌웨어 업데이트로는 해결할 수 없으며, 지난 5년간 출시된 거의 "모든 인텔 칩"에 영향을 미친다.

 2021년 
2021년 3월, AMD 보안 연구원들은 젠 3 CPU의 예측 저장 전달(Predictive Store Forwarding) 알고리즘이 악성 애플리케이션에 의해 접근해서는 안 되는 데이터에 접근하는 데 사용될 수 있음을 발견했다. 포로닉스(Phoronix)에 따르면 이 기능을 비활성화해도 성능에 미치는 영향은 거의 없다.

2021년 6월, 모든 최신 x86-64 CPU (인텔 및 AMD 모두)에 영향을 미치는 두 가지 새로운 취약점인 투기적 코드 저장 우회(, SCSB, CVE-2021-0086)와 부동 소수점 값 주입(, FPVI, CVE-2021-0089)이 발견되었다. 이를 완화하려면 소프트웨어를 다시 작성하고 다시 컴파일해야 한다. ARM CPU는 SCSB의 영향을 받지 않지만, 특정 ARM 아키텍처는 FPVI의 영향을 받는다.

또한 2021년 6월, MIT 연구원들은 ARM v8.3A의 포인터 인증 코드(PAC)에 대한 PACMAN 공격을 공개했다.

2021년 8월, 특정 AMD CPU에 영향을 미치는 "비정규 접근의 일시적 실행"()이라는 취약점이 공개되었다. 이는 특정 인텔 CPU에 영향을 미치는 MDS 취약점과 동일한 완화가 필요하다. CVE-2020-12965가 할당되었다. 대부분의 x86 소프트웨어는 이미 MDS에 대해 패치되었고 이 취약점은 정확히 동일한 완화를 가지고 있으므로 소프트웨어 공급업체는 이 취약점을 해결할 필요가 없다.

2021년 10월, 모든 AMD CPU에 영향을 미치는 멜트다운과 유사한 취약점이 사상 처음으로 공개되었지만 회사는 새로운 완화를 적용할 필요가 없으며 기존 완화로 충분하다고 생각한다.

 2022년 
2022년 3월, 분기 기록 주입(Branch History Injection)이라는 새로운 스펙터 취약점 변종이 공개되었다. 이 취약점은 특정 ARM64 CPU와 다음 인텔 CPU 제품군에 영향을 미친다: 캐스케이드 레이크, 아이스레이크, 타이거레이크 및 앨더레이크. 리눅스 커널 개발자들에 따르면 AMD CPU도 영향을 받는다.

2022년 3월, 광범위한 AMD CPU에 영향을 미치는 취약점이 CVE-2021-26341로 공개되었다.

2022년 6월, MMIO 인텔 CPU에서 가상 환경 실행과 관련된 여러 취약점이 발표되었다. 다음 CVE가 지정되었다: CVE-2022-21123, CVE-2022-21125, CVE-2022-21166.

2022년 7월, Retbleed 취약점이 공개되었으며, 인텔 코어 6세대부터 8세대 CPU와 AMD 젠 1, 1+, 2세대 CPU에 영향을 미친다. 최신 인텔 마이크로아키텍처와 젠 3부터 시작하는 AMD는 영향을 받지 않는다. 이 취약점에 대한 완화는 영향을 받는 인텔 CPU의 성능을 최대 39% 감소시키고, AMD CPU는 최대 14% 감소시킨다.

2022년 8월, 라이젠 2000-5000 시리즈 CPU에 영향을 미치는 SQUIP 취약점이 공개되었다. AMD에 따르면 기존 완화만으로도 이를 방어하기에 충분하다.

2022년 10월에 발표된 Phoronix 리뷰에 따르면 젠 4/라이젠 7000 CPU는 완화로 인해 속도가 느려지지 않으며, 실제로는 완화를 비활성화하면 성능이 저하된다.

 2023년 
2023년 2월, "크로스 스레드 반환 주소 예측"()이라는 광범위한 AMD CPU 아키텍처에 영향을 미치는 취약점이 공개되었다.

2023년 7월, 젠 2 AMD 마이크로아키텍처의 치명적인 취약점인 젠블리드()가 공개되었다. AMD는 이를 수정하기 위한 마이크로코드 업데이트를 발표했다.

2023년 8월, AMD의 젠 1, 젠 2, 젠 3, 젠 4 마이크로아키텍처에 있는 인셉션()이라는 새로운 취약점이 공개되었고 CVE-2023-20569가 할당되었다. AMD에 따르면 이는 실용적이지 않지만, 회사는 영향을 받는 제품에 대한 마이크로코드 업데이트를 출시할 예정이다.

또한 2023년 8월, 다운폴 또는 데이터 샘플링 수집()이라는 새로운 취약점이 공개되었으며, 인텔 CPU 스카이레이크, 캐스케이드 레이크, 쿠퍼 레이크, 아이스 레이크, 타이거 레이크, 앰버 레이크, 카비 레이크, 커피 레이크, 위스키 레이크, 코멧 레이크, 로켓 레이크 CPU 제품군에 영향을 미친다. 인텔은 영향을 받는 제품에 대한 마이크로코드 업데이트를 출시할 예정이다.

2023년에 보고된 SLAM 취약점(선형 주소 마스킹 기반 스펙터)은 해당 CVE를 받지 못했으며, 확인되거나 완화되지 않았다.

 2024년 
2024년 3월, 스펙터-V1 공격의 변종인 고스트레이스()가 발표되었다. 이는 인텔, AMD, ARM을 포함한 모든 주요 마이크로아키텍처 및 공급업체에 영향을 미친다고 주장되었다. CVE-2024-2193이 할당되었다. AMD는 이 취약점(이를 "투기적 경쟁 조건(SRCs)"이라고 부름)을 기존 완화로 충분하다고 주장하며 일축했다. 리눅스 커널 개발자들은 성능 문제를 이유로 완화를 추가하지 않기로 결정했다. 젠 하이퍼바이저 프로젝트는 이 취약점을 완화하기 위한 패치를 출시했지만 기본적으로 활성화되지 않는다.

또한 2024년 3월, 인텔 아톰 프로세서의 레지스터 파일 데이터 샘플링(, RFDS) 취약점이 공개되었다. CVE-2023-28746이 할당되었다. 이 완화는 약간의 성능 저하를 초래한다.

2024년 4월, 특정 인텔 CPU 제품군에서 BHI 취약점이 기존 완화에도 불구하고 사용자 공간에서 커널 기능이나 루트 액세스를 사용하지 않고도 여전히 악용될 수 있다는 사실이 밝혀졌다. 인텔은 "추가 소프트웨어 강화"를 권장했다. 이 공격에는 CVE-2024-2201이 할당되었다.

2024년 6월, 삼성 리서치와 서울대학교 연구원들은 ARM v8.5A CPU의 메모리 태그 확장(Memory Tagging Extension)에 대한 TikTag 공격을 공개했다. 연구원들은 구글 크롬과 리눅스 커널에 대한 PoC(Proof-of-Concept)를 만들었다. VUSec의 연구원들은 이전에 ARM의 메모리 태그 확장(Memory Tagging Extension)이 투기적 프로빙에 취약하다는 것을 밝혀낸 바 있다.

2024년 7월, UC 샌디에이고 연구원들은 고정밀 분기 대상 주입(BTI)을 활용하여 인텔 앨더레이크 및 랩터레이크 CPU에 대한 Indirector 공격을 공개했다. 인텔은 이 취약점의 심각성을 경시하고 기존 완화만으로 문제를 해결하기에 충분하다고 주장했다. CVE는 할당되지 않았다.

 2025년 
2025년 1월, 조지아 공과대학교 연구원들은 애플 실리콘의 로드 주소 예측을 통한 데이터 투기 공격(, SLAP) 및 거짓 로드 출력 예측을 통한 애플 M3 CPU 해킹 (FLOP)에 대한 두 개의 백서를 발표했다.

또한 2025년 1월, ARM은 비특권 컨텍스트가 데이터 메모리 의존 선인출 엔진을 트리거하여 특권 위치에서 데이터를 가져오도록 할 수 있으며, 이는 무단 접근으로 이어질 수 있는 취약점(콘솔 CVE|2024-7881|link=no})을 공개했다. 이 문제를 완화하기 위해 Arm은 CPUACTLR6_EL1[41]을 설정하여 영향을 받는 선인출기를 비활성화할 것을 권장한다.

2025년 5월, VUSec은 Training Solo라는 이름으로 다양한 인텔 및 ARM 아키텍처에서 스펙터-v2를 확장하는 세 가지 취약점을 발표했다. 완화에는 인텔 CPU에 대한 마이크로코드 업데이트와 리눅스 커널의 변경이 필요하다.
 기록 기반 공격은 eIBRS를 사용하는 모든 인텔 CPU에 영향을 미치며, 2025년 현재 최신인 BHI_NO 기능이 있는 인텔의 최신 세대 라이온 코브(Lion Cove) 및 일부 ARM 마이크로아키텍처도 포함된다.
 간접 대상 선택(Indirect Target Selection, ITS) ()은 인텔 코어 9세대-11세대 및 인텔 제온 2세대-3세대에 영향을 미친다.
 라이온 코브 BPU 문제 ()는 라이온 코브 코어, 루나 레이크 및 애로우 레이크에 영향을 미친다.

또한 2025년 5월, ETH 취리히 컴퓨터 보안 그룹 "COMSEC"은 로 9세대(커피레이크 리프레시)부터 시작하는 모든 인텔 x86 아키텍처에 영향을 미치는 분기 권한 주입() 취약점을 공개했다. 이를 완화하기 위해서는 마이크로코드 업데이트가 필요하며, 최대 8%의 성능 저하가 따른다.

2025년 7월, AMD는 마이크로소프트 연구원들이 발견한 일시적 스케줄러 공격(, TSA)으로 알려진 새로운 종류의 투기적 실행 취약점을 공개했다. 이 공격은 AMD 젠 3 및 젠 4 마이크로아키텍처에 영향을 미치며, CPU 스케줄러 로직의 마이크로아키텍처 타이밍 누출, 특히 투기적 로드의 잘못된 완료 중 부정확한 데이터 전달을 악용하여 다른 프로세스 또는 권한 수준에서 민감한 데이터를 유추한다. TSA는 네 가지 취약점을 포함한다:  (TSA-SQ), 이전 저장소에서 데이터를 유출한다;  (TSA-L1), L1 데이터 캐시를 활용한다; , 제어 레지스터의 투기적 읽기를 가능하게 한다; 그리고 , TSC_AUX 레지스터 값을 유출한다. 완화에는 마이크로코드 업데이트, 리눅스 커널 패치 (tsa= 튜너블), 그리고 VERW 명령어의 선택적 사용이 포함되지만, 잠재적인 성능 비용이 따른다.

2025년 9월, ETH 취리히 연구원들은 스펙터-BTI 스타일의 일시적 실행 공격인 VMScape ()를 공개했는데, 이는 게스트 가상 머신과 호스트 사용자 공간 하이퍼바이저(특히 KVM 하의 QEMU) 간의 분기 예측기 불완전한 격리를 악용하여 악성 게스트가 투기적 실행에 영향을 미치고 민감한 호스트 메모리를 유출하도록 한다. 이 결함은 AMD 젠 1-5 및 인텔 "커피레이크" 프로세서에 영향을 미치며, 완화에는 예측기 상태를 플러시하기 위해 사용자 공간으로 제어를 반환하기 전에 VMEXIT에서 조건부로 간접 분기 예측 장벽(IBPB) 명령어를 발행하는 리눅스 커널 패치가 포함된다.

 미래 
스펙터급 취약점은 해결되지 않을 것인데, 그렇지 않으면 CPU 설계자들이 투기적 실행을 비활성화해야 하여 막대한 성능 손실을 초래하기 때문이다. 그럼에도 불구하고 AMD는 젠 4를 완화로 인해 성능에 영향을 받지 않도록 설계하는 데 성공했다.

 취약점 및 완화 요약 
 완화 유형  포괄성  효율성  성능 영향  설명  하드웨어전체전체없음 또는 미미함CPU 설계 변경이 필요하므로 새로운 하드웨어 반복이 필요하다.  마이크로코드 부분에서 전체부분에서 전체없음에서 큼CPU가 실행되는 소프트웨어를 업데이트하며, 각 영향을 받는 CPU에 대한 패치 출시와 모든 BIOS 또는 운영 체제에 통합이 필요하다.  OS/VMM부분부분에서 전체작음에서 큼운영 체제 또는 가상 머신 수준에서 적용되며 (워크로드에 따라)  소프트웨어 재컴파일 불량부분에서 전체중간에서 큼많은 소프트웨어 조각을 재컴파일해야 한다.

* 위에 포함되지 않은 다양한 CPU 마이크로아키텍처도 영향을 받는다. 여기에는 ARM 아키텍처, IBM 파워 마이크로프로세서, IBM Z, MIPS 아키텍처 등이 포함된다. SLAM부터 시작하는 취약점은 표에 포함되지 않았다. 이는 최신 AMD 및 인텔 x86 아키텍처를 포함하지 않기 때문에 역사적 증거로만 존재한다.

** 이 표의 8세대 커피레이크 아키텍처는 이전에 출시된 광범위한 인텔 CPU에도 적용되며, 인텔 코어, 펜티엄 4 및 실버몬트부터 시작하는 인텔 아톰 기반 아키텍처에만 국한되지 않는다.
취약점 이름/하위 이름공식 이름/하위 이름CVE영향을 받는 CPU 아키텍처 및 완화*인텔AMD10세대  9세대 8세대**젠 / 젠+젠 2아이스레이크캐스케이드 / 코멧 /앰버 레이크커피레이크위스키레이크커피레이크,앰버 레이크스펙터v1Bounds Check Bypass colspan="7" v2Branch Target Injection rowspan="2" colspan="2"  colspan="2"  rowspan="2" colspan="2"  rowspan="2"  colspan="2" 멜트다운 / v3Rogue Data Cache Load colspan="4"    colspan="2" rowspan="3" 스펙터-NGv3aRogue System Register Read rowspan="2"  rowspan="2"  rowspan="2" v4투기적 저장 우회 rowspan="2" colspan="3"  rowspan="2"  rowspan="2"   rowspan="2" Lazy FP state restore colspan="5"  colspan="2" v1.1Bounds Check Bypass Store colspan="7" SpectreRSB/ret2specReturn Mispredict colspan="7" ForeshadowL1 Terminal Fault (L1TF)SGX colspan="4" rowspan="4"  colspan="2" rowspan="19" OS/SMM rowspan="2" VMM마이크로아키텍처 데이터 샘플링 (MDS)RIDLZombieLoadFill Buffer (MFBDS) rowspan="3" Load Port (MLPDS) rowspan="2"  colspan="3"  colspan="3" FalloutStore Buffer (MSBDS) colspan="3"  rowspan="3"  colspan="4" RIDLUncacheable Memory (MDSUM) colspan="4" SWAPGS colspan="5" RIDL(Rogue In-Flight Data Load)ZombieLoad v2TSX Asynchronous Abort (TAA) colspan="2"  rowspan="2"  colspan="2"  colspan="2" L1D Eviction Sampling (L1DES) rowspan="7"  colspan="3" rowspan="4" Vector Register Sampling (VRS)Load Value Injection (LVI) colspan="4" 크로스토크Special Register Buffer Data Sampling (SRBDS) rowspan="2" colspan="3" Floating Point Value Injection (FPVI) colspan="7" rowspan="2" Speculative Code Store Bypass (SCSB)Branch History Injection (BHI)and other forms of intra-mode BTI rowspan="2" colspan="2"  colspan="2"  rowspan="2" colspan="3"  colspan="2" MMIO Stale DataShared Buffers Data Read (SBDR) rowspan="2" colspan="2"  rowspan="2"  colspan="2" rowspan="3" Shared Buffers Data Sampling (SBDS)Device Register Partial Write (DRPW) colspan="4" Branch Type Confusion (BTC)BTC-NOBRBTC-DIR colspan="5" rowspan="2"  colspan="2" BTC-IND colspan="2" RetbleedBTC-RET rowspan="2" colspan="2"  colspan="2"  rowspan="2"  rowspan="2" colspan="2"  colspan="2" Cross-Thread Return Address Predictions colspan="5"   colspan="2" 젠블리드Cross-Process Information Leak colspan="6"   인셉션Speculative Return Stack Overflow (SRSO) colspan="5"   colspan="2" 다운폴Gather Data Sampling (GDS) colspan="5"   colspan="2" 
내용주

 각주 

 외부 링크 
 Linux kernel docs: Hardware vulnerabilities

 Vulnerabilities associated with CPU speculative execution
 A systematic evaluation of transient execution attacks and defenses
 A dynamic tree of transient execution vulnerabilities for Intel, AMD and ARM CPUs
 Transient Execution Attacks by Daniel Gruss, June 20, 2019
 CPU Bugs
 Intel: Refined Speculative Execution Terminology

분류:하드웨어 버그
분류:취약점 공격