Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
spectre-meltdown-checker — Reptar, Downfall, Zenbleed, ZombieLoad, RIDL, Fallout, Foreshadow, Spectre, Meltdown 취약점/완화 조치 확인 도구 (Linux & BSD용) | Kitploit
도구/GitHubGitHub/speed47/spectre-meltdown-checker
Defensive ToolsReconnaissanceVulnerability ScannersVulnerability AnalysisInformation GatheringHardware SecurityHardware & IoT SecurityLearning & Education
GitHubspeed47/spectre-meltdown-checker

spectre-meltdown-checker

Reptar, Downfall, Zenbleed, ZombieLoad, RIDL, Fallout, Foreshadow, Spectre, Meltdown 취약점/완화 조치 확인 도구 (Linux & BSD용)

저장소 보기
3.9k47122일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Spectre & Meltdown Checker

시스템이 2018년 초 이후 공개된 여러 일시적 실행 CVE에 대해 얼마나 강력한지 평가하고, 이를 완화하는 방법에 대한 지침을 제공하는 독립형 셸 스크립트입니다.

CVE 목록

CVE이름별칭
CVE-2017-5753경계 검사 우회 (Bounds Check Bypass)Spectre V1
CVE-2017-5715분기 대상 주입 (Branch Target Injection)Spectre V2
CVE-2017-5754불량 데이터 캐시 로드 (Rogue Data Cache Load)Meltdown
CVE-2018-3640불량 시스템 레지스터 읽기 (Rogue System Register Read)변종 3a
CVE-2018-3639추측 저장 우회 (Speculative Store Bypass)변종 4, SSB
CVE-2018-3615L1 터미널 오류 (L1 Terminal Fault)Foreshadow (SGX)
CVE-2018-3620L1 터미널 오류 (L1 Terminal Fault)Foreshadow-NG (OS/SMM)
CVE-2018-3646L1 터미널 오류 (L1 Terminal Fault)Foreshadow-NG (VMM)
CVE-2018-12126마이크로아키텍처 저장 버퍼 데이터 샘플링 (Microarchitectural Store Buffer Data Sampling)MSBDS, Fallout
CVE-2018-12127마이크로아키텍처 로드 포트 데이터 샘플링 (Microarchitectural Load Port Data Sampling)MLPDS, RIDL
CVE-2018-12130마이크로아키텍처 필 버퍼 데이터 샘플링 (Microarchitectural Fill Buffer Data Sampling)MFBDS, ZombieLoad
CVE-2018-12207페이지 크기 변경 시 기계 검사 예외 (Machine Check Exception on Page Size Changes)iTLB Multihit, No eXcuses

다음 항목들은 커널이 적극적으로 우회하는 ARM64 실리콘 정오표입니다. 이 항목에는 CVE가 할당되지 않았으며, ARM의 정오표 번호로만 추적됩니다. --errata <number> 또는 해당 --variant 니모닉을 사용하여 선택하세요.

ID이름영향받는 코어
CVE-0001-0001추측 AT TLB 손상 (Speculative AT TLB corruption) (정오표 1165522, 1319367, 1319537, 1530923)Cortex-A55/A57/A72/A76

내가 위험한가요?

상황에 따라 아래 표는 특정 위치의 공격자가 특정 대상으로부터 데이터를 추출할 수 있는지 여부를 보여줍니다. "사용자 영역 → 커널" 열은 VM 내에서도 동일하게 적용됩니다 (VM 사용자 영역 vs VM 커널). 가상화 여부와 관계없이 동일한 CPU 메커니즘이 적용되기 때문입니다.

💥 이 경계를 넘어 데이터가 유출될 수 있습니다.

✅ 이 시나리오에서는 영향받지 않습니다.

☠️ 서비스 거부 (시스템 충돌 또는 예측 불가능한 동작), 데이터 유출 없음.

(1) 프로세스 간 유출을 위해서는 SMT(하이퍼스레딩)가 활성화되어야 합니다. 공격자와 피해자는 물리적 코어를 공유해야 합니다.

(2) 임의의 메모리가 아닌 RDRAND/RDSEED 출력만 유출합니다. 그래도 모든 피해자의 암호화 자료를 복구할 수 있습니다.

(3) CVE-2018-3615 (Foreshadow SGX)는 일반적인 신뢰 모델을 뒤집습니다. OS가 SGX enclave 데이터를 읽습니다. 시스템이 SGX enclave를 실행하지 않는 경우 관련이 없으며, 공격자는 이미 OS 수준 접근 권한이 있어야 합니다.

(4) VM→호스트 유출은 일부 영향받는 CPU 모델(Skylake-X, Kaby Lake, Comet Lake)에만 적용됩니다. Ice Lake, Tiger Lake, Rocket Lake는 네이티브(사용자→커널) 공격에만 영향받으며, 게스트→호스트는 해당되지 않습니다.

상세 CVE 설명

상세 CVE 설명을 보려면 펼치기

CVE-2017-5753 — 경계 검사 우회 (Spectre 변종 1)

공격자는 분기 예측기를 훈련시켜 범위 검사를 잘못 예측하게 하여 CPU가 추측적으로 경계를 벗어난 메모리에 접근하게 할 수 있습니다. 이는 모든 소프트웨어(커널 포함)에 영향을 미칩니다. 조건부 범위 검사가 잠재적으로 악용될 수 있기 때문입니다. 완화를 위해서는 적절한 위치에 LFENCE 명령어(또는 array_index_nospec 같은 추측 장벽)를 삽입하는 컴파일러로 소프트웨어와 커널을 재컴파일해야 합니다. 성능 영향은 무시할 만합니다. 장벽은 특정 대상 코드 패턴에만 적용되기 때문입니다.

CVE-2017-5715 — 분기 대상 주입 (Spectre 변종 2)

공격자는 BTB(Branch Target Buffer)를 오염시켜 커널의 간접 분기 추측 실행을 리디렉션하여 커널 메모리를 유출할 수 있습니다. 두 가지 완화 전략이 있습니다. (1) IBRS(Indirect Branch Restricted Speculation)를 제공하는 마이크로코드 업데이트로, 특권 전환 시 분기 예측 상태를 플러시합니다. 이는 특히 오래된 하드웨어에서 중간~높은 성능 비용이 듭니다. (2) retpoline: 간접 분기를 추측자가 악용할 수 없는 구조로 대체하는 컴파일러 기술입니다. 성능 비용이 낮지만 커널과 민감한 소프트웨어를 재컴파일해야 합니다.

CVE-2017-5754 — 불량 데이터 캐시 로드 (Meltdown)

영향받는 Intel 프로세서에서 사용자 프로세스는 권한이 없음에도 불구하고 추측적으로 커널 메모리를 읽을 수 있습니다. CPU는 결국 오류를 발생시키지만 데이터는 캐시에 관찰 가능한 흔적을 남깁니다. 완화는 전적으로 커널 측에서 이루어집니다. PTI(KPTI)는 커널 메모리의 대부분을 사용자 공간 페이지 테이블에서 매핑 해제하여 추측적으로 읽을 것이 없게 만듭니다. 성능 영향은 낮음~중간입니다. 주로 커널 진입/종료 시 페이지 테이블 전환으로 인한 TLB 압력 증가 때문입니다.

CVE-2018-3640 — 불량 시스템 레지스터 읽기 (변종 3a)

Meltdown과 유사하지만 시스템 레지스터를 대상으로 합니다. 비특권 프로세스가 특권 시스템 레지스터 값(예: 모델별 레지스터)을 추측적으로 읽고 측면 채널을 통해 유출할 수 있습니다. 완화는 마이크로코드 업데이트만 필요하며, 커널 변경은 필요하지 않습니다. 성능 영향은 무시할 만합니다.

CVE-2018-3639 — 추측 저장 우회 (변종 4)

CPU는 동일한 주소에 대한 이전 저장소가 완료되기 전에 메모리에서 값을 추측적으로 로드하여 오래된 데이터를 읽을 수 있습니다. 이는 주로 JIT 컴파일을 사용하는 소프트웨어(예: JavaScript 엔진, eBPF)에 영향을 미치며, 공격자는 저장-로드 의존성을 악용하는 코드를 조작할 수 있습니다. 커널 자체에 대한 알려진 악용은 입증되지 않았습니다. 완화를 위해서는 SSBD 메커니즘을 제공하는 마이크로코드 업데이트와 영향을 받는 소프트웨어가 prctl()을 통해 보호를 선택할 수 있도록 하는 커널 업데이트가 필요합니다. 성능 영향은 완화가 활성화되는 빈도에 따라 낮음~중간입니다.

CVE-2018-3615 — L1 터미널 오류 (Foreshadow, SGX)

원래 Foreshadow 공격은 Intel SGX enclave를 대상으로 합니다. 페이지 테이블 항목의 Present 비트가 지워졌을 때 CPU는 여전히 항목의 물리적 주소를 추측적으로 사용하여 L1 캐시에서 데이터를 가져올 수 있어 SGX 보호를 우회합니다. 공격자는 SGX enclave에서 비밀(증명 키, 봉인된 데이터)을 추출할 수 있습니다. 완화를 위해서는 SGX 동작을 수정하는 마이크로코드 업데이트가 필요합니다. 성능 영향은 무시할 만합니다.

CVE-2018-3620 — L1 터미널 오류 (Foreshadow-NG, OS/SMM)

SGX를 넘어선 Foreshadow의 일반화입니다. 비특권 사용자 공간 코드는 동일한 L1TF 메커니즘을 이용하여 커널 메모리 또는 SMM(System Management Mode) 메모리를 읽을 수 있습니다. 완화를 위해서는 PTE 반전을 구현하는 커널 업데이트가 필요합니다. 존재하지 않는 페이지 테이블 항목을 잘못된 물리적 주소로 표시하여 L1 캐시에 해당 주소의 유용한 데이터가 포함되지 않도록 합니다. 성능 영향은 무시할 만합니다. PTE 반전은 페이지 테이블 관리 로직에 대한 일회성 변경이며 런타임 오버헤드가 없기 때문입니다.

CVE-2018-3646 — L1 터미널 오류 (Foreshadow-NG, VMM)

게스트 VM은 L1TF를 악용하여 호스트 또는 다른 게스트의 메모리를 읽을 수 있습니다. 하이퍼바이저의 페이지 테이블에 L1에 여전히 상주하는 유효한 호스트 물리적 주소를 가리키는 존재하지 않는 항목이 있을 수 있기 때문입니다. 완화 옵션은 다음과 같습니다. 모든 VM 진입 시 L1 데이터 캐시 플러시(L1d 플러시 지원을 제공하는 커널 업데이트를 통해), EPT(Extended Page Tables) 비활성화, 또는 추측 중에 형제 스레드가 L1 캐시를 다시 채우지 못하도록 SMT(하이퍼스레딩) 비활성화. 선택한 완화 방법에 따라 성능 영향은 낮음에서 상당함까지 다양합니다. VM 진입 시 L1d 플러시가 가장 실용적이지만 VM이 많은 워크로드에서는 여전히 측정 가능한 성능 영향을 줍니다.

지원되지 않는 CVE

여러 일시적 실행 CVE가 여러 가지 이유(중복, 지원되지 않는 하드웨어 또는 OS에만 영향, 이론적이며 알려진 악용 없음 등)로 이 도구에서 지원되지 않습니다. 전체 목록과 각 제외 이유는 UNSUPPORTED_CVE_LIST.md 파일에서 확인할 수 있습니다.

범위

지원되는 운영 체제:

  • Linux (모든 버전, 종류 및 배포판)
  • FreeBSD, NetBSD, DragonFlyBSD 및 파생 제품(다른 BSD는 지원되지 않습니다)

Linux 시스템의 경우, 도구는 광고된 커널 버전 번호 및 배포판(Debian, Ubuntu, CentOS, RHEL, Fedora, openSUSE, Arch 등)에 관계없이 백포트된 비순정 패치를 포함한 완화 조치를 감지합니다. 직접 커널을 컴파일한 경우에도 작동합니다. 자세한 내용은 여기를 참조하세요.

MacOS, Windows, ESXi 등과 같은 다른 운영 체제는 지원되지 않습니다.

지원되는 아키텍처:

  • x86 (32비트)
  • amd64/x86_64 (64비트)
  • ARM 및 ARM64
  • 다른 아키텍처도 작동하지만 완화 조치(존재하는 경우)가 항상 감지되지 않을 수 있습니다.

자주 묻는 질문 (FAQ)

이 도구의 목적은 무엇인가요? 왜 작성되었나요? 저에게 어떻게 유용할 수 있나요? 어떻게 작동하나요? 무엇을 기대할 수 있나요?

이 모든 질문(및 그 이상)에 대한 자세한 답변은 FAQ에 있으니 확인해 보세요!

작동 모드

스크립트는 실행 중인 커널, 커널 이미지, CPU 하드웨어 또는 이들의 조합을 검사할지 여부에 따라 네 가지 작동 모드를 지원합니다.

라이브 모드(기본값)에서 스크립트는 CPU와 실행 중인 커널을 모두 검사합니다. 선택적으로 --kernel, --config 또는 --map을 전달하여 스크립트가 자동으로 감지할 수 없는 파일을 지정할 수 있습니다.

No-runtime 모드에서 스크립트는 여전히 로컬 CPU(CPUID, MSR, 마이크로코드)를 읽지만 실행 중인 커널 아티팩트(/sys, /proc, dmesg)는 모두 건너뜁니다. 다른 시스템의 커널 이미지가 있지만 현재 CPU에 대해 평가하려는 경우에 사용하십시오.

No-hardware 모드에서는 CPU 검사와 실행 중인 커널 아티팩트를 모두 완전히 건너뜁니다. 이는 예를 들어 x86 워크스테이션에서 ARM 커널 이미지를 검사하는 등 교차 아키텍처 분석에 유용합니다.

Hardware-only 모드에서 스크립트는 커널을 검사하지 않고 CPU 정보 및 CVE별 하드웨어 영향 여부만 보고합니다.

스크립트 실행

직접 실행 (권장)

  • curl 또는 wget을 사용하여 최신 버전의 스크립트를 가져옵니다.

    root@kitploit:~
    curl -L https://meltdown.ovh -o spectre-meltdown-checker.sh
    wget https://meltdown.ovh -O spectre-meltdown-checker.sh
    
  • 스크립트를 검사합니다. 인터넷에서 다운로드한 스크립트를 맹목적으로 실행하지는 않으시죠?

    root@kitploit:~
    vim spectre-meltdown-checker.sh
    
  • 준비가 되면 루트로 스크립트를 실행합니다.

    root@kitploit:~
    chmod +x spectre-meltdown-checker.sh
    sudo ./spectre-meltdown-checker.sh
    

Docker 컨테이너 사용

펼쳐서 지침 확인

docker compose 사용:```shell docker compose build docker compose run --rm spectre-meltdown-checker

root@kitploit:~
참고로, 구버전의 docker에서는 `docker-compose`가 별도의 명령어이므로, 위의 두 `docker compose`를 `docker-compose`로 바꿔야 할 수도 있습니다.

`docker build`를 직접 사용하기:```shell
docker build -t spectre-meltdown-checker .
docker run --rm --privileged -v /boot:/boot:ro -v /dev/cpu:/dev/cpu:ro -v /lib/modules:/lib/modules:ro spectre-meltdown-checker

스크립트 출력 예시

  • AMD EPYC-Milan이 Debian Trixie에서 실행 중

alt text

도구 다운로드
CVE-2019-11091
마이크로아키텍처 데이터 샘플링 비캐시 가능 메모리 (Microarchitectural Data Sampling Uncacheable Memory)
MDSUM, RIDL
CVE-2019-11135TSX 비동기 중단 (TSX Asynchronous Abort)TAA, ZombieLoad V2
CVE-2020-0543특수 레지스터 버퍼 데이터 샘플링 (Special Register Buffer Data Sampling)SRBDS, CROSSTalk
CVE-2022-21123공유 버퍼 데이터 읽기 (Shared Buffers Data Read)SBDR, MMIO Stale Data
CVE-2022-21125공유 버퍼 데이터 샘플링 (Shared Buffers Data Sampling)SBDS, MMIO Stale Data
CVE-2022-21166장치 레지스터 부분 쓰기 (Device Register Partial Write)DRPW, MMIO Stale Data
CVE-2022-29900반환 명령어를 이용한 임의 추측 코드 실행 (Arbitrary Speculative Code Execution with Return Instructions)Retbleed (AMD)
CVE-2022-29901반환 명령어를 이용한 임의 추측 코드 실행 (Arbitrary Speculative Code Execution with Return Instructions)Retbleed (Intel), RSBA
CVE-2022-40982수집 데이터 샘플링 (Gather Data Sampling)Downfall, GDS
CVE-2023-20569반환 주소 보안 (Return Address Security)Inception, SRSO
CVE-2023-20588AMD 0으로 나누기 추측 데이터 누출 (AMD Division by Zero Speculative Data Leak)DIV0
CVE-2023-20593프로세스 간 정보 누출 (Cross-Process Information Leak)Zenbleed
CVE-2023-23583중복 접두사 문제 (Redundant Prefix Issue)Reptar
CVE-2023-28746레지스터 파일 데이터 샘플링 (Register File Data Sampling)RFDS
CVE-2024-28956간접 대상 선택 (Indirect Target Selection)ITS
CVE-2024-36350일시적 스케줄러 공격, 저장 큐 (Transient Scheduler Attack, Store Queue)TSA-SQ
CVE-2024-36357일시적 스케줄러 공격, L1 (Transient Scheduler Attack, L1)TSA-L1
CVE-2025-40300VM-Exit 오래된 분기 예측 (VM-Exit Stale Branch Prediction)VMScape
CVE-2024-45332분기 권한 주입 (Branch Privilege Injection)BPI
CVE-2025-54505AMD Zen1 부동소수점 나눗셈기 오래된 데이터 누출 (AMD Zen1 Floating-Point Divider Stale Data Leak)FPDSS
CVE-0001-0002추측 비특권 로드 (Speculative unprivileged load) (정오표 2966298, 3117295)Cortex-A510/A520
CVE-0001-0003MSR SSBS 비자기동기화 (MSR SSBS not self-synchronizing) (정오표 3194386 + 관련)Cortex-A76/A77/A78/A78C/A710/A715/A720/A720AE/A725, X1/X1C/X2/X3/X4/X925, Neoverse-N1/N2/N3/V1/V2/V3/V3AE
취약점사용자 영역 → 커널사용자 영역 → 사용자 영역VM → 호스트VM → VM완화 방법
CVE-2017-5753 (Spectre V1)💥💥💥💥모든 것을 LFENCE로 재컴파일
CVE-2017-5715 (Spectre V2)💥💥💥💥마이크로코드 + 커널 업데이트 (또는 retpoline)
CVE-2017-5754 (Meltdown)💥✅✅✅커널 업데이트
CVE-2018-3640 (변종 3a)💥✅✅✅마이크로코드 업데이트
CVE-2018-3639 (변종 4, SSB)✅💥✅✅마이크로코드 + 커널 업데이트
CVE-2018-3615 (Foreshadow, SGX)✅ (3)✅ (3)✅ (3)✅ (3)마이크로코드 업데이트
CVE-2018-3620 (Foreshadow-NG, OS/SMM)💥✅✅✅커널 업데이트
CVE-2018-3646 (Foreshadow-NG, VMM)✅✅💥💥커널 업데이트 (또는 EPT/SMT 비활성화)
CVE-2018-12126 (MSBDS, Fallout)💥💥 (1)💥💥 (1)마이크로코드 + 커널 업데이트
CVE-2018-12127 (MLPDS, RIDL)💥💥 (1)💥💥 (1)마이크로코드 + 커널 업데이트
CVE-2018-12130 (MFBDS, ZombieLoad)💥💥 (1)💥💥 (1)마이크로코드 + 커널 업데이트
CVE-2018-12207 (iTLB Multihit, No eXcuses)✅✅☠️✅하이퍼바이저 업데이트 (또는 hugepage 비활성화)
CVE-2019-11091 (MDSUM, RIDL)💥💥 (1)💥💥 (1)마이크로코드 + 커널 업데이트
CVE-2019-11135 (TAA, ZombieLoad V2)💥💥 (1)💥💥 (1)마이크로코드 + 커널 업데이트
CVE-2020-0543 (SRBDS, CROSSTalk)💥 (2)💥 (2)💥 (2)💥 (2)마이크로코드 + 커널 업데이트
CVE-2022-21123 (SBDR, MMIO Stale Data)💥💥 (1)💥💥 (1)마이크로코드 + 커널 업데이트
CVE-2022-21125 (SBDS, MMIO Stale Data)💥💥 (1)💥💥 (1)마이크로코드 + 커널 업데이트
CVE-2022-21166 (DRPW, MMIO Stale Data)💥💥 (1)💥💥 (1)마이크로코드 + 커널 업데이트
CVE-2022-29900 (Retbleed AMD)💥✅💥✅커널 업데이트 (+ IBPB용 마이크로코드)
CVE-2022-29901 (Retbleed Intel, RSBA)💥✅💥✅마이크로코드 + 커널 업데이트 (eIBRS 또는 IBRS)
CVE-2022-40982 (Downfall, GDS)💥💥💥💥마이크로코드 업데이트 (또는 AVX 비활성화)
CVE-2023-20569 (Inception, SRSO)💥✅💥✅마이크로코드 + 커널 업데이트
CVE-2023-20588 (DIV0)💥💥 (1)💥💥 (1)커널 업데이트 (+ SMT 비활성화)
CVE-2023-20593 (Zenbleed)💥💥💥💥마이크로코드 업데이트 (또는 커널 우회)
CVE-2023-23583 (Reptar)☠️☠️☠️☠️마이크로코드 업데이트
CVE-2023-28746 (RFDS)💥✅💥✅마이크로코드 + 커널 업데이트
CVE-2024-28956 (ITS)💥✅💥 (4)✅마이크로코드 + 커널 업데이트
CVE-2024-36350 (TSA-SQ)💥💥 (1)💥💥 (1)마이크로코드 + 커널 업데이트
CVE-2024-36357 (TSA-L1)💥💥 (1)💥💥 (1)마이크로코드 + 커널 업데이트
CVE-2025-40300 (VMScape)✅✅💥✅커널 업데이트 (VM-exit 시 IBPB)
CVE-2024-45332 (BPI)💥✅💥✅마이크로코드 업데이트
CVE-2025-54505 (FPDSS)💥💥💥💥커널 업데이트

CVE-2018-12126 — 마이크로아키텍처 저장 버퍼 데이터 샘플링 (MSBDS, Fallout)

CVE-2018-12127 — 마이크로아키텍처 로드 포트 데이터 샘플링 (MLPDS, RIDL)

CVE-2018-12130 — 마이크로아키텍처 필 버퍼 데이터 샘플링 (MFBDS, ZombieLoad)

CVE-2019-11091 — 마이크로아키텍처 데이터 샘플링 비캐시 가능 메모리 (MDSUM, RIDL)

이 네 가지 CVE는 통틀어 "MDS"(마이크로아키텍처 데이터 샘플링) 취약점으로 알려져 있습니다. 이들은 CPU 내부 버퍼(저장 버퍼, 필 버퍼, 로드 포트, 비캐시 가능 메모리 경로)를 악용하여 추측 실행 중에 최근에 접근한 데이터를 특권 경계를 넘어 유출할 수 있습니다. 비특권 공격자는 커널이나 다른 프로세스에서 최근에 처리한 데이터를 관찰할 수 있습니다. 완화를 위해서는 MD_CLEAR 메커니즘을 제공하는 마이크로코드 업데이트와 특권 전환 시 VERW를 사용하여 영향을 받는 버퍼를 지우는 커널 업데이트가 필요합니다. SMT(하이퍼스레딩)를 비활성화하면 형제 스레드가 이러한 버퍼를 공유하므로 추가 보호를 제공합니다. 성능 영향은 커널 전환 빈도와 SMT 비활성화 여부에 따라 낮음에서 상당함까지 다양합니다.

CVE-2018-12207 — 페이지 크기 변경 시 기계 검사 예외 (iTLB Multihit, No eXcuses)

악성 게스트 VM은 페이지 크기 변경과 관련된 명령어 TLB에서 특정 조건을 생성하여 기계 검사 예외(MCE)를 유발하여 전체 호스트를 충돌시킬 수 있습니다. 이는 신뢰할 수 없는 게스트를 실행하는 하이퍼바이저에 영향을 미치는 서비스 거부 취약점입니다. 완화를 위해서는 하이퍼바이저에서 hugepage 사용을 비활성화하거나 문제가 되는 iTLB 구성을 피하도록 하이퍼바이저를 업데이트해야 합니다. 접근 방식에 따라 성능 영향은 낮음에서 상당함까지 다양합니다. hugepage를 비활성화하면 메모리 집약적 워크로드에 상당한 영향을 줄 수 있습니다.

CVE-2019-11135 — TSX 비동기 중단 (TAA, ZombieLoad V2)

Intel TSX가 있는 CPU에서 트랜잭션 중단은 라인 필 버퍼의 데이터를 측면 채널을 통해 관찰 가능한 상태로 남길 수 있습니다. 이는 MDS 취약점과 유사하지만 TSX를 통해 트리거됩니다. 완화를 위해서는 영향을 받는 버퍼를 지우거나 TSX를 완전히 비활성화(TSX_CTRL MSR을 통해)하는 마이크로코드 업데이트와 커널 지원이 필요합니다. 성능 영향은 MDS와 유사하게 낮음에서 상당함까지 다양합니다. TSX를 비활성화하면 트랜잭션 메모리 지원을 잃는 대신 공격 표면을 완전히 제거할 수 있습니다.

CVE-2020-0543 — 특수 레지스터 버퍼 데이터 샘플링 (SRBDS, CROSSTalk)

특정 특수 CPU 명령어(RDRAND, RDSEED, EGETKEY)는 모든 코어에서 추측 실행을 통해 접근 가능한 공유 스테이징 버퍼를 통해 데이터를 읽습니다. 모든 코어에서 코드를 실행하는 공격자는 다른 코어에 있는 피해자의 이러한 명령어 출력을 관찰할 수 있으며, SGX enclave의 암호화 키(완전한 ECDSA 키가 시연됨)를 추출하는 것도 가능합니다. 이는 최초의 크로스 코어 추측 실행 공격 중 하나로 주목할 만합니다. 완화를 위해서는 스테이징 버퍼에 대한 접근을 직렬화하는 마이크로코드 업데이트와 완화를 관리하는 커널 업데이트가 필요합니다. 성능 영향은 낮습니다. 주로 RDRAND/RDSEED를 많이 사용하는 워크로드에 영향을 미칩니다.

CVE-2022-21123, CVE-2022-21125, CVE-2022-21166 — 프로세서 MMIO 오래된 데이터 (SBDR, SBDS, DRPW)

MMIO(메모리 매핑 I/O) 취약점의 한 부류로, MMIO 작업 중에 CPU 내부 필 버퍼의 오래된 데이터가 측면 채널 공격을 통해 유추될 수 있습니다. 세 가지 하위 취약점이 포함됩니다: 공유 버퍼 데이터 읽기(SBDR, CVE-2022-21123), 공유 버퍼 데이터 샘플링(SBDS, CVE-2022-21125), 장치 레지스터 부분 쓰기(DRPW, CVE-2022-21166). 영향받는 Intel CPU에는 Haswell에서 Rocket Lake까지의 서버 및 클라이언트 프로세서와 Tremont Atom 코어가 포함됩니다. 완화를 위해서는 FB_CLEAR 기능(VERW 명령어가 필 버퍼를 지움)을 제공하는 마이크로코드 업데이트와 커널/사용자 전환 및 VM 진입/종료 시 VERW를 호출하는 커널 업데이트(Linux 5.19+)가 필요합니다. SMT가 활성화된 경우 완화 조치가 적용되더라도 형제 스레드가 취약점을 계속 악용할 수 있습니다. 성능 영향은 낮습니다. VERW 메커니즘은 기존 MDS 완화와 공유되기 때문입니다.

CVE-2022-29900 — 반환 명령어를 이용한 임의 추측 코드 실행 (Retbleed AMD)

AMD 프로세서(패밀리 0x150x17: BulldozerZen 2)와 Hygon 패밀리 0x18에서 공격자는 반환 명령어를 이용하여 추측 실행을 리디렉션하고 커널 메모리를 유출할 수 있으며, Spectre V2에 효과적이었던 retpoline 완화를 우회합니다. Spectre V2가 간접 점프와 호출을 대상으로 하는 반면, Retbleed는 이전에 안전하다고 간주되었던 반환 명령어를 구체적으로 대상으로 합니다. 완화를 위해서는 untrained return thunk(안전한 RET) 또는 IBPB-on-entry 메커니즘을 제공하는 커널 업데이트와 Zen 1/2에서 IBPB 지원을 제공하는 마이크로코드 업데이트가 필요합니다. Zen 1/2에서 IBPB 기반 완화를 사용할 때 전체 보호를 위해 SMT를 비활성화해야 합니다. 성능 영향은 중간입니다.

CVE-2022-29901 — 반환 명령어를 이용한 임의 추측 코드 실행 (Retbleed Intel, RSBA)

RSB 대체 동작(RSBA)이 있는 Intel SkylakeRocket Lake 프로세서에서 반환 명령어는 RSB(Return Stack Buffer)가 언더플로우될 때 BTB(Branch Target Buffer)를 통해 추측적으로 리디렉션되어 retpoline 완화를 우회할 수 있습니다. 완화를 위해서는 Enhanced IBRS(eIBRS, 마이크로코드 업데이트를 통해) 또는 IBRS-on-entry를 지원하는 커널(Linux 5.19+)이 필요합니다. 호출 깊이 추적(stuffing)은 Linux 6.2+부터 사용 가능한 대체 완화 방법입니다. 일반 retpoline은 RSBA 지원 CPU에서 이 취약점을 완화하지 않습니다. 성능 영향은 중간높음입니다.

**CVE-2022-40982 — 수집 데이터 샘플링 (GDS, Downfall)**AVX GATHER 명령어는 공유된 gather 데이터 버퍼를 통해 이전에 사용된 벡터 레지스터의 데이터를 권한 경계를 넘어 유출할 수 있습니다. 이는 취약한 Intel 프로세서에서 AVX2 또는 AVX-512를 사용하는 모든 소프트웨어에 영향을 미칩니다. 마이크로코드 업데이트를 통해 gather 버퍼를 지우거나, AVX 기능 자체를 완전히 비활성화하여 완화할 수 있습니다. 대부분의 워크로드에서 성능 영향은 미미하지만, HPC 및 AI 추론과 같은 AVX 집약적 애플리케이션에서는 최대 50%까지 상당한 영향을 줄 수 있습니다.

CVE-2023-20569 — Return Address Security (Inception, SRSO)

AMD Zen 1 ~ Zen 4 프로세서에서 공격자는 반환 주소 예측기를 조작하여 반환 명령어에서 추측 실행을 리디렉션하고 커널 메모리를 유출할 수 있습니다. 완화를 위해서는 커널 업데이트(SRSO 안전 반환 시퀀스 또는 IBPB-on-entry 제공)와 마이크로코드 업데이트(Zen 3/4에는 SBPB, Zen 1/2에는 IBPB 지원 제공 — 추가로 SMT를 비활성화해야 함)가 모두 필요합니다. 선택된 완화 방법과 CPU 세대에 따라 성능 영향은 낮음에서 상당함까지 다양합니다.

CVE-2023-20588 — AMD Division by Zero Speculative Data Leak (DIV0)

AMD Zen 1 프로세서에서 #DE(0으로 나누기) 예외는 이전 나눗셈의 남은 몫 데이터를 나눗셈 장치에 남겨둘 수 있으며, 추측 측면 채널을 통해 후속 나눗셈에서 관찰될 수 있습니다. 이는 동일한 물리적 코어를 공유하는 SMT 스레드를 포함한 모든 권한 경계를 넘어 데이터를 유출할 수 있습니다. 완화를 위해서는 사용자 공간으로의 모든 종료 및 VMRUN 전에 더미 나눗셈(amd_clear_divider())을 추가하여 오래된 데이터의 지속을 방지하는 커널 업데이트(Linux 6.5+)가 필요합니다. 마이크로코드 업데이트는 필요하지 않습니다. SMT를 비활성화하면 커널 완화가 SMT-스레드 간 유출을 다루지 않으므로 추가적인 보호를 제공합니다. 성능 영향은 미미합니다.

CVE-2023-20593 — Cross-Process Information Leak (Zenbleed)

AMD Zen 2 프로세서의 버그로 인해 VZEROUPPER 명령어가 추측 실행 중에 레지스터 파일을 잘못 0으로 만들어, 벡터 레지스터에서 다른 프로세스의 오래된 데이터를 관찰할 수 있습니다. 이는 커널 및 다른 프로세스의 데이터를 코어당 최대 30KB/s 속도로 모든 권한 경계를 넘어 유출할 수 있습니다. 버그를 수정하는 마이크로코드 업데이트를 적용하거나, DE_CFG MSR의 FP_BACKUP_FIX 비트(비트 9)를 설정하여 결함이 있는 최적화를 비활성화하는 커널 워크어라운드를 통해 완화할 수 있습니다. 두 방법 중 하나만으로 충분합니다. 성능 영향은 미미합니다.

CVE-2023-23583 — Redundant Prefix Issue (Reptar)

Intel 프로세서에서 특정 중복 REX 접두사가 있는 명령어를 실행할 때 예기치 않은 동작이 발생하는 버그입니다. 상황에 따라 시스템 충돌(MCE), 예측 불가능한 동작 또는 잠재적인 권한 상승으로 이어질 수 있습니다. 영향을 받는 CPU에서 실행되는 모든 소프트웨어가 이 버그를 트리거할 수 있습니다. 완화를 위해서는 마이크로코드 업데이트가 필요합니다. 성능 영향은 낮습니다.

CVE-2023-28746 — Register File Data Sampling (RFDS)

특정 Intel Atom 및 하이브리드 프로세서(Goldmont, Goldmont Plus, Tremont, Gracemont, Alder Lake 및 Raptor Lake의 Atom 코어)에서 레지스터 파일이 이전 작업의 오래된 데이터를 유지할 수 있으며, 추측 실행을 통해 액세스 가능하여 공격자가 권한 경계를 넘어 데이터를 유추할 수 있습니다. 완화를 위해서는 RFDS_CLEAR 기능을 제공하는 마이크로코드 업데이트와 권한 전환 시 VERW 명령어를 사용하여 레지스터 파일을 지우는 커널 업데이트(CONFIG_MITIGATION_RFDS, Linux 6.9+)가 모두 필요합니다. RFDS_NO 기능 비트가 있는 CPU는 영향을 받지 않습니다. 성능 영향은 낮습니다.

CVE-2024-28956 — Indirect Target Selection (ITS)

특정 Intel 프로세서(Skylake-X 스테핑 6+, Kaby Lake, Comet Lake, Ice Lake, Tiger Lake, Rocket Lake)에서 공격자는 간접 분기 예측기를 훈련시켜 커널에서 타겟 가젯을 추측 실행하게 하여 eIBRS 보호를 우회할 수 있습니다. 분기 대상 버퍼(BTB)는 간접 분기 대상을 색인화하는 데 주소 비트의 일부만 사용하므로 사용자 공간 코드가 커널 공간의 추측 실행에 영향을 줄 수 있습니다. 영향을 받는 일부 CPU(Ice Lake, Tiger Lake, Rocket Lake)는 기본 사용자-커널 공격에만 취약하고 게스트-호스트(VMX) 공격에는 취약하지 않습니다. 완화를 위해서는 IBPB가 간접 분기 예측을 완전히 플러시하도록 수정하는 마이크로코드 업데이트(IPU 2025.1 / microcode-20250512+)와 분기/반환 썽크를 정렬하거나 RSB 스터핑을 사용하는 커널 업데이트(CONFIG_MITIGATION_ITS, Linux 6.15+)가 모두 필요합니다. 성능 영향은 낮습니다.

CVE-2024-36350 — Transient Scheduler Attack, Store Queue (TSA-SQ)

AMD Zen 3 및 Zen 4 프로세서에서 CPU의 일시적 스케줄러가 특정 타이밍 윈도우 동안 스토어 큐에서 오래된 데이터를 추측 가져올 수 있으며, 이를 통해 공격자는 이전 스토어 작업의 데이터를 권한 경계를 넘어 유추할 수 있습니다. 또한 SMT 스레드 간에도 데이터를 유출할 수 있습니다. 완화를 위해서는 VERW_CLEAR 기능을 노출하는 마이크로코드 업데이트와 사용자/커널 전환 및 VMRUN 전에 VERW 명령어를 사용하여 CPU 버퍼를 지우는 커널 업데이트(CONFIG_MITIGATION_TSA, Linux 6.16+)가 모두 필요합니다. 또한 커널은 SMT가 활성화된 경우 유휴 상태에서 버퍼를 지웁니다. 성능 영향은 낮음~중간입니다.

CVE-2024-36357 — Transient Scheduler Attack, L1 (TSA-L1)

AMD Zen 3 및 Zen 4 프로세서에서 CPU의 일시적 스케줄러가 특정 타이밍 윈도우 동안 L1 데이터 캐시에서 오래된 데이터를 추측 가져올 수 있으며, 이를 통해 공격자는 L1D 캐시의 데이터를 권한 경계를 넘어 유추할 수 있습니다. 완화를 위해서는 TSA-SQ와 동일한 마이크로코드 및 커널 업데이트가 필요합니다: VERW_CLEAR를 노출하는 마이크로코드 업데이트와 권한 전환 시 VERW를 통해 CPU 버퍼를 지우는 커널 업데이트(CONFIG_MITIGATION_TSA, Linux 6.16+). 성능 영향은 낮음~중간입니다.

CVE-2025-40300 — VM-Exit Stale Branch Prediction (VMScape)

게스트 VM이 호스트로 종료된 후, 커널이 사용자 공간으로 돌아가기 전에 게스트의 오래된 분기 예측이 호스트 측 추측 실행에 영향을 줄 수 있으며, 로컬 공격자가 호스트 커널 메모리를 유출할 수 있습니다. 이는 Sandy Bridge부터 Arrow Lake/Lunar Lake까지의 Intel 프로세서, AMD Zen 1~Zen 5 제품군 및 Hygon 제품군 0x18에 영향을 미칩니다. 신뢰할 수 없는 게스트가 있는 하이퍼바이저를 실행하는 시스템만 위험합니다. 완화를 위해서는 VM 종료 후 사용자 공간으로 돌아가기 전에 IBPB를 실행하는 커널 업데이트(CONFIG_MITIGATION_VMSCAPE, Linux 6.18+)가 필요합니다. 기존 IBPB 지원 외에 특정 마이크로코드 업데이트는 필요하지 않습니다. 성능 영향은 낮습니다.

CVE-2024-45332 — Branch Privilege Injection (BPI)

Intel 프로세서(Coffee Lake부터 Raptor Lake, 일부 서버 및 Atom 부품 포함)의 분기 예측기 업데이트 메커니즘에서 경쟁 조건으로 인해 사용자 공간 분기 예측이 일시적으로 커널 공간 추측 실행에 영향을 줄 수 있으며, eIBRS 및 IBPB 보호를 약화시킵니다. 이는 Spectre V2 완화를 위해 eIBRS에만 의존하는 시스템이 마이크로코드 수정 없이는 완전히 보호되지 않을 수 있음을 의미합니다. 완화를 위해서는 비동기 분기 예측기 업데이트 타이밍을 수정하여 eIBRS와 IBPB가 원래 의도대로 작동하게 하는 마이크로코드 업데이트(intel-microcode 20250512+)가 필요합니다. 커널 변경은 필요하지 않습니다. 성능 영향은 미미합니다.

CVE-2025-54505 — AMD Zen1 Floating-Point Divider Stale Data Leak (FPDSS)

AMD Zen1 및 Zen+ 프로세서(EPYC 7001, EPYC Embedded 3000, Athlon 3000 with Radeon, Ryzen 3000 with Radeon, Ryzen PRO 3000 with Radeon Vega)에서 하드웨어 부동 소수점 나눗셈기가 이전 작업의 부분 몫 데이터를 유지할 수 있습니다. 특정 상황에서 해당 결과는 동일한 나눗셈기를 공유하는 다른 스레드로 유출되어 모든 권한 경계를 넘을 수 있습니다. 이는 CVE-2025-54505로 지정되었으며 AMD-SB-7053으로 2026-04-17에 AMD에서 게시되었습니다. 완화를 위해서는 부팅 시 모든 Zen1 CPU에 대해 MSR 0xc0011028(MSR_AMD64_FP_CFG)의 비트 9(ZEN1_DENORM_FIX_BIT)를 무조건 설정하여 누출을 담당하는 하드웨어 최적화를 비활성화하는 커널 업데이트(메인라인 커밋 e55d98e77561, "x86/CPU: Fix FPDSS on Zen1", Linux 7.1)가 필요합니다. 마이크로코드 업데이트는 필요하지 않습니다: 칙 비트는 Zen1 실리콘에 공장에서부터 존재하며 마이크로코드 개정과 무관합니다. 성능 영향은 부동 소수점 나눗셈 처리량의 약간의 감소로 제한되며, 이것이 AMD가 기본적으로 하드웨어에서 이 비트를 활성화하지 않는 이유입니다.

모드플래그CPU 하드웨어실행 중인 커널커널 이미지사용 사례
라이브 (기본값)(없음)예예자동 감지현재 시스템의 일상적인 감사
No-runtime--no-runtime예아니요필수이 CPU에 대해 다른 커널 확인(예: 배포 전)
No-hardware--no-hw아니요아니요필수다른 시스템 또는 아키텍처용 커널 이미지의 순수 정적 분석
Hardware-only--hw-only예아니요아니요커널을 검사하지 않고 CPU 영향 여부 빠르게 확인