CVE-2024-2193 GhostRace 취약점
CVE-2024-2193은 "GhostRace"라는 이름으로 명명된 최신 CPU 레벨 사이드 채널 공격 취약점이다. 이 취약점은 경쟁 상태(Race Condition)와 분기 예측 기반의 투기 실행(Speculative Execution)이라는 두 개념이 결합되어 발생한다. 이는 Meltdown, Spectre 이후 등장한 고급 취약점으로, 멀티스레딩 환경에서의 동기화 우회를 통해 민감한 정보를 탈취할 수 있게 한다.
1. GhostRace 개요
- 공개 일자: 2024년 3월
- CVE: CVE-2024-2193
- 영향 범위: x86 아키텍처 기반의 CPU (Intel, AMD 일부 포함)
- 공격 조건: 멀티스레딩 환경, 공유 메모리 접근 구조, 사용자-커널 모드 경계 존재

GhostRace는 특정 상황에서 소프트웨어 락(Mutex, Semaphore 등)이 적용된 코드 영역조차 CPU의 투기 실행에 의해 우회될 수 있음을 증명했다. 결과적으로 이는 민감한 데이터를 읽어들이는 side-channel 공격의 새로운 벡터로 작용한다.
2. Race Condition(경쟁 상태)란?
Race Condition은 두 개 이상의 프로세스나 스레드가 공통 자원에 병렬적으로 접근(read/write)할 때, 접근 순서에 따라 프로그램의 결과가 달라지는 상황을 말한다.
(1) 대표적인 제어 문제
- Mutual Exclusion (상호 배제): 동시에 접근하지 못하도록 보장
- Deadlock (교착 상태): 서로 자원을 기다리며 무한 대기
- Starvation (기아 상태): 일부 스레드가 자원 접근 기회를 영원히 얻지 못함
(2) 경쟁 상태 예방 기법
- Mutex (Mutual Exclusion Object)
- Semaphore (세마포어)
- Atomic Operation (원자 연산)
GhostRace는 이러한 제어기법을 적용한 코드에 대해서조차, CPU 내부의 투기 실행(speculative execution)에 의해 잠재적 우회 가능성을 드러낸다는 점에서 위협적이다.
3. Spectre, Meltdown과의 관계
GhostRace는 본질적으로 다음과 같은 계보에 위치한다.
(1) Spectre (CVE-2017-5753, CVE-2017-5715)
- 분기 예측(branch prediction)을 악용하여 민감 정보 추출
- 사용자 영역 코드로 커널 메모리 읽기 가능
(2) Meltdown (CVE-2017-5754)
- 경계 검사 미비와 out-of-order execution 결합으로 커널 메모리 유출
- Intel CPU에 주로 영향
(3) GhostRace (CVE-2024-2193)
- 멀티스레드 기반 경쟁 상태 + speculative execution 결합
- 기존의 Mutex, Lock이 있어도 완전히 방어되지 않음
4. 공격 시나리오 개요
(1) 공격자는 피해자와 동일한 공유 메모리를 사용하는 스레드로 실행 (2) Mutex로 보호된 critical section이 있음 (3) CPU는 피해자가 락 획득 전에 speculative execution으로 해당 영역을 먼저 실행함 (4) 공격자는 cache timing 분석 등을 통해 민감 데이터를 추론
이는 완전한 코드 경로가 아니라 CPU 예측 분기 상에서 발생하는 비동기적 데이터 접근을 악용한 방식이다.
5. 대응 방안 및 고려 사항
(1) 운영체제 패치 및 마이크로코드 업데이트
- Intel, AMD는 GhostRace 관련한 마이크로코드 패치를 순차 배포 중
(2) 소프트웨어 레벨 완화
- speculative execution을 방지하는 lfence, memory barrier, serializing instructions 적용
(3) 커널 업데이트 시 다음 사항 확인
- speculative execution 방어 기법: STIBP, IBRS, IBPB 활성화 여부
- 컨테이너, 클라우드 환경의 경우 가상화 호스트 패치도 병행해야 함