Claude Opus 4.6 및 CVE-2026-2796 악용
Claude Opus 4.6는 Firefox의 JavaScript WebAssembly 구성 요소에 있는 JIT 잘못 컴파일 문제인 CVE-2026-2796에 대한 기능적인 악용 코드를 자율적으로 작성하는 능력을 보여주었다. 이 악용은 보안 기능이 제한된 테스트 환경에서만 작동했으며 브라우저 샌드박스에서 완전한 탈출을 달성하지는 않았지만, LLM의 사이버 능력 발전 과정에서 중요한 전환점이 되었다.
CVE-2026-2796의 기술적 원인
CVE-2026-2796는 JavaScript와 WebAssembly(Wasm) 간의 임포트/익스포트 경계에서 발생하는 타입 혼동 취약점이다.
타입 안전 경계
일반적으로 Firefox는 두 가지 메커니즘을 통해 타입 안전성을 보장한다:
- 인스턴스화 시점 검사: Wasm 함수는 선언된 타입 서명과 일치해야 한다.
- 런타임 변환: JavaScript 기반 임포트는 인터옵 레이어를 통해 Wasm 값이 JS 값으로 변환되며, 원시 비트가 재해석되는 것을 방지한다.
최적화 실패
이 취약점은 MaybeOptimizeFunctionCallBind() 내부의 "빠른 경로" 최적화에서 발생한다. Wasm 모듈이 Function.prototype.call.bind(...)로 래핑된 함수를 임포트할 경우, 엔진은 래퍼를 해제하고 내부 타깃 함수를 직접 임포트 레코드에 저장하지만, 해제된 함수의 타입 서명이 임포트에서 선언된 타입과 일치하는지 검증하지 않는다.
표준 호출 경로(Instance::callImport)는 JS 인터옵 레이어 덕분에 여전히 안전하지만, getExportedFunction() 경로는 이 검사를 수행하지 않는다. Wasm 코드가 ref.func를 사용해 임포트된 함수를 참조할 경우, 해제된 타깃 함수를 받게 된다. 이 함수가 call_ref를 통해 호출되면 JS 인터옵 레이어를 완전히 우회하게 되어 매개변수가 원시 바이트로 전달된다. 이로 인해 Module A는 자신의 선언된 타입에 따라 바이트를 쓰지만, Module B는 자신의 다른 타입에 따라 읽게 되어 타입 혼동이 발생한다.
Claude의 악용 개발 과정
Anthropic는 가상 머신, 작업 검증기, 취약점 세부 정보를 Claude Opus 4.6에 제공했다. 성공하기 위해 Claude는 Firefox js 쉘의 단순화된 버전을 사용하여 비밀 파일을 읽고 타겟 시스템에 정보 유출 파일을 쓰는 작업을 수행해야 했다.
악용 원시 체인
Claude는 목표를 전통적인 브라우저 악용 체인으로 분해했다:
- 타입 혼동: 취약점을 이용해 제어 가능한 포인터 해제를 생성한다.
- 정보 유출 (
addrof): 객체의 주소를 정수로 유출한다. - 참조 위조 (
fakeobj): 임의의 주소에 대한 JS 객체 참조를 위조한다. - 임의 읽기/쓰기:
addrof와fakeobj를 사용해 제어 가능한 백엔드 스토어 포인터를 가진 가짜ArrayBuffer를 생성한다. - 코드 실행: 함수 포인터를 오버라이드하여 임의 코드 실행을 달성한다.
읽기/쓰기 원시 구현
Claude는 WebAssembly GC 제안의 struct 타입을 활용하여 "알고리즘의 닭과 계란" 문제(임의 쓰기를 달성하기 위해 임의 쓰기가 필요함)를 극복했다.
externref를 struct 참조로 캐스팅하고 struct.get을 사용하면 고정 오프셋에서 메모리 로드가 이루어지므로, Claude는 읽기 원시를 생성했다. 마찬가지로 struct.set을 사용해 write64 원시를 생성했다. 이러한 원시들은 프로세스의 주소 공간을 조작할 수 있게 해주었으며, 결국 임의 읽기/쓰기 기능을 위한 가짜 ArrayBuffer를 구축하는 데 성공했다.
AI 사이버 능력에 대한 함의
이 사례 연구는 선도 모델이 복잡한 악용을 작성할 능력을 거의 갖추고 있음을 시사한다.
모델 비교
평가에서 성공한 유일한 모델은 Opus 4.6이었다. 다른 테스트된 모델—Opus 4.1, 4.5, Sonnet 4.5, 4.6, Haiku 4.5—은 악용을 생성하지 못했다. Anthropic는 이 성공을 Opus 4.6의 높은 인내심과 뛰어난 프로그래밍 능력 때문이라고 설명했다.
위험 평가
Anthropic는 이 결과가 Opus 4.6의 "능력 하한선"을 나타낸다고 주목한다. 복잡한 힙 조작 없이 타입 혼동을 악용 원시로 변환할 수 있다는 점은, 동기 있는 공격자가 LLM을 활용해 악용 개발 속도를 크게 가속화할 수 있음을 시사한다.
"이 순간은 빠르게 움직여야 할 때다—사이버 방어자를 강화하여 가능한 한 많은 코드를 보호함으로써, 사이버 범죄자가 LLM의 사이버 능력을 악용하기 위해 요구되는 기술 수준을 높여야 한다."
Anthropic는 개발자들이 취약점을 검색하고 버그 리포트를 우선순위 정하며 패치를 제안하는 데 도움을 주기 위해 사이버 보안 노력 범위를 확장할 계획이다.
Sources
관련
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch