TAU-HOME.COM
LOADING

VUSec, JIT 엔진의 잔존 분기 예측을 악용하는 신종 스펙터 v2 공격 'BTR' 공개

네덜란드 VUSec 연구진이 JIT 컴파일러의 코드 캐시 재사용 시 잔존하는 분기 예측 엔트리를 악용해 커널 메모리를 탈취하는 신종 Spectre-v2 변종 'BTR(Branch Target Reuse)' 연구와 실증 익스플로잇을 공개했습니다.

tau · 2026년 10월 3일

#Security #Spectre #JIT #LinuxKernel #VUSec #Vulnerability

VUSec, JIT 엔진의 잔존 분기 예측을 악용하는 신종 스펙터 v2 공격 'BTR' 공개

VUSec, JIT 엔진의 잔존 분기 예측을 악용하는 신종 스펙터 v2 공격 'BTR' 공개

이미지 출처: https://www.vusec.net/projects/btr/

네덜란드 암스테르담 자유대학교 VUSec 연구팀과 이탈리아 산안나 고등과학원(Scuola Superiore Sant'Anna) 연구진이 2026년 9월 29일, JIT(Just-In-Time) 컴파일러 환경을 겨냥한 신종 Spectre-v2 변종 공격 기법인 'BTR(Branch Target Reuse)' 연구를 공식 공개했습니다. 컴퓨터 보안 학술대회인 ACM CCS 2026에 채택된 이번 논문은 동적 코드 생성 엔진이 메모리를 해제하고 재할당할 때 CPU 마이크로아키텍처의 분기 예측 엔트리가 동기화되지 않는 취약점을 조명합니다.

현대 프로세서와 브라우저, 언어 런타임, 운영체제 커널에 널리 사용되는 JIT 컴파일러는 자가 수정 코드(SMC, Self-Modifying Code) 기술을 기반으로 동작합니다. 연구진은 JIT 엔진의 코드 캐시 재사용 과정에서 발생하는 분기 예측 오염을 조작해 커널 메모리 격리를 우회하고 루트 비밀번호 해시를 탈취할 수 있음을 실증했습니다.

BTR 공격의 핵심 원리: 코드 캐시 재사용과 잔존 분기 예측

현대 CPU는 런타임에 동적으로 코드를 생성하고 변경하는 JIT 엔진의 자가 수정 코드(SMC)가 아키텍처 관점에서 오래된(stale) 덮어쓰기 코드를 실행하지 못하도록 일관성(coherence) 메커니즘을 제공합니다. 그러나 마이크로아키텍처 관점의 투기적 실행(Speculative Execution) 수준에서는 이러한 일관성이 완벽히 보장되지 않는다는 점이 이번 연구에서 밝혀졌습니다.

과거 SMC 기반 투기적 실행 연구(SCSB)는 x86 아키텍처에 국한되고 명령어/데이터 캐시 일관성 윈도우가 극히 짧아 실제 JIT 엔진에서의 실효성이 낮다고 평가받았습니다. 하지만 BTR은 메모리 내 제자리(in-place)에서 간접 분기 예측 엔트리를 악용하는 새로운 접근법을 제시합니다.

  • 투기적 실행 후 해제(Transient Execute-After-Free): JIT 엔진이 코드 캐시 영역을 해제(free)하고 새로운 코드를 할당(reuse)할 때, CPU 내부의 분기 목표 버퍼(BTB) 및 간접 분기 예측 테이블에 과거 분기 대상 주소 엔트리가 그대로 잔존합니다.
  • 분기 타깃 오염 및 제어 흐름 탈취: 공격자는 JIT 엔진을 정밀하게 제어하여 분기 예측기가 유효하지 않은 옛 분기 대상으로 투기적 실행을 유도하도록 유인하며, 이를 통해 메모리 보호 경계를 넘어서는 부채널 정보 유출 가젯을 실행합니다.

Linux cBPF·SpiderMonkey·GraalVM 공격 표면과 실증 결과

연구진은 Intel, AMD, ARM 프로세서가 탑재된 다양한 하드웨어 환경에서 주요 JIT 런타임의 공격 표면을 분석했습니다.

  • Linux 커널 cBPF: 리눅스 커널 내부의 고전 BPF(cBPF) JIT 컴파일러를 대상으로 비권한 사용자가 실행할 수 있는 완전한 엔드투엔드(End-to-End) 커널 메모리 유출 익스플로잇을 성공시켰습니다. 기본 완화 조치가 모두 적용된 최신 Intel 시스템 환경에서도 수 분 만에 커널 메모리 내 루트 비밀번호 해시를 유출할 수 있음이 확인되었습니다.
  • Firefox SpiderMonkey: 모질라 파이어폭스의 자바스크립트 JIT 엔진인 SpiderMonkey에서도 코드 캐시 재사용에 따른 분기 예측 잔존 현상과 마이크로아키텍처 공격 표면이 확인되었으나, 브라우저 샌드박스를 완전히 우회하는 풀 엔드투엔드 익스플로잇까지는 이어지지 않았습니다.
  • Oracle GraalVM: 자바 가상머신 기반의 고성능 다국어 런타임인 GraalVM의 JIT 컴파일러 구조 역시 BTR 메커니즘의 잠재적 영향권에 포함됨이 분석되었습니다.

보안 패치(CVE-2026-64507, CVE-2026-64508) 및 CPU 벤더 대응

이번 연구 발표와 함께 관련 보안 취약점에 대한 패치와 벤더 권고안이 배포되고 있습니다.

리눅스 커널 진영은 BPF JIT 메모리 재할당 시 IBPB(Indirect Branch Prediction Barrier) 플러시를 수행하는 패치(CVE-2026-64507)와 JIT 스프레이 공격 방어를 강화하는 패치(CVE-2026-64508)를 주요 배포판 커널에 적용하고 있습니다.

Intel은 2026년 10월 1일 발표한 공식 보안 권고(INTEL-2026-10-01-001-BTR)를 통해, BTR 공격 기법이 기존 BHI(Branch History Injection) 및 Spectre-v2 완화 가이드라인과 최신 리눅스 커널 패치를 조합하여 시스템 환경에서 방어될 수 있음을 안내했습니다. VUSec 연구팀은 연구의 투명성과 재현성을 위해 마이크로아키텍처 실험 코드와 JIT 공격 표면 분석 아티팩트, 실증 익스플로잇을 GitHub(vusec/btr) 및 Zenodo에 공개했습니다.

출처

Impact-Site-Verification: 9b3ebd10-6c45-44cf-a014-5b8c19b7b285