
CVE-2026-6307 PoC: Longinus - 2 Boundaries in One Bug https://nebusec.ai/research/v8-cve-2026-6307-writeup/)
'Longinus'로 더 잘 알려진: 하나의 버그로 두 경계(2 Boundaries in One Bug)
저장소: https://github.com/J4ck3LSyN-Gen2/CVE-2026-6307-Longinus
상세 보고서: OS-IS-CVE-2026-6307-07-2026.md
기술 분석 문서: Nebula Security - Longinus: 2 Boundaries in One Bug
[!WARNING] 이 코드는 교육 및 연구 목적으로만 "있는 그대로(AS IS)" 제공됩니다. 운영 환경, 공유 환경, 또는 승인되지 않은 대상에는 이 PoC를 사용하지 마십시오.
- 이 익스플로잇은 Chrome 렌더러 샌드박스를 완전히 장악할 수 있는 치명적인 원격 코드 실행(RCE) 취약점(CVE-2026-6307)을 시연합니다.
- 이 코드를 실행하거나 호스팅할 경우 오용 시 백신 탐지, 보안 모니터링 경고, 또는 법적 결과를 초래할 수 있습니다.
- 작성자와 저장소 관리자는 이 코드로 인해 발생하는 어떠한 손해, 오용, 또는 불법 행위에 대해 책임을 지지 않습니다.
- 적절한 권한을 갖춘 격리된 실습 환경에서만 사용하십시오. 방어적 연구, 취약점 분석, 블루팀 테스트 전용입니다.
이 저장소는 Google V8 TurboFan 컴파일러의 고위험 타입 혼동 취약점인 CVE-2026-6307("Longinus")에 대한 개념 증명(PoC) 을 포함합니다. 이 버그는 JS-to-WebAssembly 호출 인라인 중 FrameStateFunctionInfo의 불완전한 동등성 비교에서 발생하며, 특히 JSToWasmFrameStateFunctionInfo의 signature_ 필드를 누락합니다.
이 결함으로 인해 반환 타입(externref vs i64)이 서로 다른 FrameState 노드가 잘못 병합될 수 있습니다. 지연 비최적화(lazy deoptimization) 중에 디옵티마이저가 반환 레지스터를 잘못 해석하여 강력한 임의 읽기/쓰기 프리미티브를 제공합니다:
addrof(target) - JavaScript 객체의 주소를 BigInt로 유출합니다.fakeobj(addr) - 임의 주소에 가짜 JavaScript 객체를 구체화합니다.이러한 프리미티브는 적절한 후속 기법과 결합될 때 단일 취약점으로 V8 힙 샌드박스와 렌더러 샌드박스 경계를 모두 뚫습니다.
영향: 악성 JavaScript(예: 조작된 웹페이지)를 통한 샌드박스 내 렌더러 프로세스에서의 원격 코드 실행(RCE).
JSToWasmFrameStateFunctionInfo를 포함하는 FrameState 노드를 생성합니다.FrameStateFunctionInfo의 동등 연산자(==)는 WebAssembly 함수 시그니처(signature_)를 비교하지 않습니다.FrameState들을 병합합니다.externref가 i64로 잘못 해석됨 → 포인터 비트가 BigInt로 유출됨 (addrof).i64가 externref로 잘못 해석됨 → 정수 비트가 태그된 참조로 구체화됨 (fakeobj).다이어그램, TurboFan IR 스니펫, 디옵티마이저 동작에 대해서는 전체 Nebula Security 분석 문서와 첨부된 분석 보고서를 참조하십시오.
d8 바이너리).--allow-natives-syntax --expose-wasm--turbo-dynamic-map-checks 또는 유사 옵션이 포함된 디버그 d8.# d8 셸 사용
./d8 --allow-natives-syntax --expose-wasm poc.js
예상 동작 (취약한 빌드에서):
addrof 유출 성공.fakeobj 구체화 성공(식별 검사 통과).참고: 완전한 RCE에는 추가 엔지니어링(오프셋 계산, WASM/GC 상호작용, 샌드박스 탈출)이 필요합니다. 이 PoC는 핵심 프리미티브에 초점을 맞춥니다.
포함된 .yar 규칙은 스크립트나 메모리에서 PoC 패턴을 식별하기 위해 보안 도구에 사용할 수 있습니다.
면책 조항: 이 저장소는 교육, 방어, 연구 목적으로만 제공됩니다. 승인되지 않은 시스템에는 사용하지 마십시오. 작성자는 오용에 대해 책임을 지지 않습니다.
질문, 기여, 또는 변형 개발이 있다면 이슈를 열거나 PR을 제출하십시오.
최종 업데이트: 2026년 7월
| 파일 | 설명 |
|---|
poc.js | addrof 및 fakeobj 프리미티브 + 기본 읽기/쓰기 데모를 보여주는 핵심 PoC. |
gen.py | PoC 변형 또는 페이로드 스캐폴딩 생성을 위한 헬퍼 스크립트. |
val.py | 프리미티브 검증 및 테스트 유틸리티. |
cve-2026-6307_d8_execution.yml | V8 d8 셸에서 PoC를 실행하기 위한 구성/워크플로. |
cve-2026-6307_longinus_poc.yar | PoC 시그니처 또는 관련 패턴 탐지를 위한 YARA 규칙. |