새 Spectre v2 변종 BTR, 리눅스 루트 비밀번호 해시 복구 실증
새 Spectre v2 변종 'Branch Target Reuse(BTR)'로 리눅스 커널 기능을 겨냥한 종단 간 실증 공격이 성립해 루트 비밀번호 해시가 복구됐다. 업데이트와 기본 보호 설정이 적용된 인텔 시스템에서도 공격이 통했고, 세 JIT 엔진 가운데 완전한 공격이 구현된 곳은 리눅스뿐이다.

BTR을 공개한 연구는 VUSec과 스쿠올라 수페리오레 산타나 연구진이 수행했다. 표적은 운영체제 커널과 웹 브라우저, 언어 런타임이 쓰는 JIT 엔진, 곧 실행 중에 코드를 생성하고 교체하는 구조다.
리눅스에서 확인된 실증 범위
공격이 향한 지점은 리눅스 커널의 cBPF다. cBPF는 비권한 프로그램도 사용할 수 있고 seccomp과 소켓·패킷 필터링에 쓰이는 필터 기능인 반면, eBPF JIT은 권한 있는 사용자만 접근할 수 있다고
연구진은 이 cBPF를 겨냥한 종단 간 실증 공격 두 건으로 루트 비밀번호 해시를 복구했다. 두 공격은 기본 설정 환경과 상수 블라인딩이 적용된 환경을 각각 대상으로 했고, 후자에서도 5분 안에 해시가 복구됐다고 보고된 유출 속도는 초당 8바이트다. 랩터 코브와 라이언 코브에서는 공격 완료에 각각 평균 3분과 5분이 걸렸다고 연구진은 밝혔다.
해시 유출은 평문 비밀번호 획득과 다르며, 실제 비밀번호 복구 가능성은 해시 알고리즘과 비밀번호 강도 등에 좌우된다는 점도 같은 매체가 짚었다.
공격이 성립하는 조건

연구진은 자기수정 코드 처리 뒤에도 남을 수 있는 간접 분기 예측 항목을 BTR의 핵심 조건으로 제시했다. JIT 엔진이 같은 주소에 새 코드를 배치하면 이전 코드의 분기 대상 예측이 재사용되고, 투기적 실행이 잘못된 위치로 향할 수 있다. 투기적 실행은 CPU가 분기 결과를 미리 추측해 명령을 앞당겨 실행하는 동작으로, 이때 잘못 예측된 경로의 데이터 접근이 캐시에 남긴 흔적을 타이밍으로 측정해 값을 추론한다.
2018년 이후로는 자기수정 코드를 쓰는 상용 JIT 엔진에서 이런 공격이 실용적이지 않다는 인식이 있었으나 BTR이 반대 결과를 보였다고 VUSec 측은 설명했다. Spectre는 2017년 처음 발견된 CPU 취약점 계열로 투기적 실행과 캐시 타이밍 부채널을 이용한다고
플랫폼별 확인 수준과 대응
영향은 파이어폭스 스파이더몽키, 오라클 GraalVM, 리눅스 커널 cBPF JIT에서 확인됐고 악용 가능성과 유출 특성은 서로 달랐다. 스파이더몽키에서는 코드 재사용 뒤에도 이전 분기 예측이 남는 현상이 확인됐지만 완전한 브라우저 공격은 구현되지 않았다. GraalVM에서는 메모리 마스킹을 투기적으로 건너뛸 가능성이 확인됐으나 코드 컴파일과 가비지 컬렉션이 이전 분기 항목을 지워 실험에서는 완전한 공격을 구현하지 못했다. 다만 이 제약이 근본적인 것으로는 보이지 않는다고 연구진은 평가했다.
대응은 소프트웨어 쪽에서 진행됐다. CPU 업체들은 기존 완화 장치로 BTR을 억제할 수 있고 소프트웨어 차원의 수정이 필요하다는 입장을 밝혔다고 같은 매체에 따르면 리눅스 커널 개발자들은 이전 BPF 코드가 쓰던 메모리 영역에 cBPF 프로그램이 배치될 때 모든 CPU 코어에서 그 완화 장치를 작동시키는 x86 완화책을 도입했다. 관련 식별자는 CVE-2026-64507과 CVE-2026-64508이며 수정 사항은 리눅스 커널에 병합됐다고 영향을 받는 반도체 업체와 소프트웨어 개발사에는 연구 결과가 통보돼 이들이 연구를 인정했고, 오라클은 일부 완화책을 적용했다.

사진
총 3건- 태국 방콕의 왓프라깨우 사원 · 자료사진
- 위키백과 안드로이드 앱 검색 화면 · 자료사진
- 스펙터 취약점 로고 · 자료사진


