Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-6307 — Google Chrome CVE-2026-6307 PoC | Kitploit
도구/GitHubGitHub/0xsha/cve-2026-6307
Vulnerability AnalysisExploitationShellcodeWeb Application ExploitationLearning & EducationShellcode GenerationPayload DevelopmentBinary ExploitationLabs & Practice
GitHub0xsha/cve-2026-6307

CVE-2026-6307

Google Chrome CVE-2026-6307 PoC

53131개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기

CVE-2026-6307: V8 JS-to-Wasm 타입 혼동 → Chrome 146에서 RCE

V8 JS-to-Wasm 디옵티마이제이션 타입 혼동 (Nebula에 의해 설명됨)의 로컬 재현 및 무기화로, Chrome for Testing 146.0.7680.165의 렌더러에서 xcalc를 실행합니다. (해당 버그는 147.0.7727.101에서 수정되었습니다.)

모든 페이로드는 무해합니다 (계산기 / exit(0x42) / jmp $). 모든 것은 의도적으로 구버전 브라우저를 대상으로 로컬 연구실에서 실행되며, 다른 사람을 대상으로 삼지 마십시오.

Demo

https://github.com/user-attachments/assets/d450f064-ba52-4f39-a88b-367f31217143

버그

JSToWasmFrameStateFunctionInfo의 동등 연산자가 Wasm 시그니처 비교를 생략하므로 CSE/GVN은 시그니처만 다른 프레임 상태를 병합합니다. 그 후 지연 디옵트가 Wasm i64를 태그된 externref로 (또는 그 반대로) 구체화하여, 포인터가 케이지 압축되지 않은 완전한 64비트 addrof/fakeobj를 제공합니다 (Wasm 참조는 태그된 레지스터 표현을 사용하며, kReturnRegister0을 통해 반환됨).

아래의 모든 내용은 146.0.7680.165를 대상으로 실시간 검증되었습니다. 로드별 숫자는 반복 실행을 통해 측정된 히트율입니다 (혼동은 GC에 민감하며, 각 페이지는 더티 빌드에서 다시 시작됩니다). 어떤 실행에서도 오탐은 발생하지 않았습니다.

플래그 없는 프리미티브 — --allow-natives-syntax 없음

대부분의 V8 버그 PoC는 %OptimizeFunctionOnNextCall을 사용하여 최적화를 강제하는데, 이는 테스트 전용 내장 함수로 --allow-natives-syntax 뒤에 숨겨져 있어 실제 피해자는 활성화하지 않습니다. 이 PoC는 전혀 플래그 없이 버그를 유발하며, 웜업 피드백을 조정하여 디옵트 혼동이 자연스럽게 발생하도록 합니다. 모든 주소는 런타임에 유출되며 — 하드코딩된 것은 없습니다. 플래그 없이 헤드리스로 실행하십시오.

시각적 RCE — ASLR 없는 실험실 빌드

rce-no-aslr/는 코드 실행으로 이어집니다: 최적화된 JS 함수 g는 execve 셸코드를 JIT double 리터럴로 준비하고 (movabs 상수, 각각 eb rel8로 끝나 다음을 연결), 혼동된 저장이 nop; jmp를 g의 코드에 패치하며, g()를 호출하면 RIP가 셸코드로 슬라이드됩니다.

이 빌드는 --allow-natives-syntax를 사용합니다 (%Optimize가 g의 JIT 페이로드를 고정시켜 디옵트-GC가 플러시하지 못하게 함) 및 --no-memory-protection-keys (혼동된 저장이 JIT 페이지를 패치할 수 있도록 — 그렇지 않으면 V8의 PKU가 읽기 전용으로 표시). ASLR은 꺼져 있습니다 (randomize_va_space=0) 따라서 주소가 결정적입니다 (A_MAP = 0x5555bbc0128a). 렌더러는 또한 --disable-seccomp-filter-sandbox --no-zygote가 필요합니다. 그렇지 않으면 seccomp가 셸코드의 execve를 차단하기 때문입니다.

실행 방법

네이티브 x86_64 Linux, ASLR 해제, PATH에 Chrome 146, :0에 X 디스플레이 (Xvfb 또는 실제 X). rce-no-aslr/run.sh가 모든 플래그를 설정하고 http로 제공합니다.

root@kitploit:~
cd rce-no-aslr
./run.sh calc          # http://127.0.0.1:8080을 통해 실제 xcalc 팝업, :0에서
./run.sh exit          # strace로 렌더러의 exit(66) 확인
./run.sh jmp           # gdb로 RIP가 주입된 셸코드 내부에 있는지 확인
./demo.sh calc         # 깨끗한 상태 + 자동 재시도, 전체 크기 headful 브라우저 (녹화용)
./demo.sh msgbox       # 동일하지만, 팝업은 브랜드된 "0xSha :: pwned" 박스

pocmode.sh calc|msgbox는 RCE의 execve("/usr/bin/xcalc")가 실행하는 대상을 전환합니다 (실제 계산기 vs 브랜드된 박스). 플래그 없는 프리미티브는 브라우저만 필요합니다:

root@kitploit:~
chrome --headless=new --no-sandbox http://127.0.0.1:8080/flag-free/01-primitives-flagfree.html

구성

root@kitploit:~
flag-free/   플래그 없는 기여 (--allow-natives-syntax 없음)
  00-reachability   트리거 + 패치 차이 (취약한 146 vs 패치된 147)
  01-primitives     addrof / fakeobj
  02-store          케이지 외부 저장
  03-arw            케이지 내부 read64 / write64
rce-no-aslr/ 시각적 RCE (결정적, ASLR 없는 실험실 빌드)
  exploit-calc.html / exploit-exit.html
  run.sh, demo.sh, pocmode.sh, xcalc-msgbox.sh

버그 및 근본 원인 설명: Nebula Security (위에 링크됨). 플래그 없는 트리거, 프리미티브 및 이 저장소의 시각적 작업은 로컬 연구실에서 검증된 재현/확장입니다.

도구 다운로드
파일설명검증
flag-free/00-reachability-flagfree.html혼동 상태를 트리거합니다. 취약한 146에서는 동작, 패치된 147에서는 동작하지 않음로드당 6/15
flag-free/01-primitives-flagfree.htmladdrof / fakeobj (fakeobj(addrof(o))===o)8/12
flag-free/02-store-flagfree.html케이지 외부 저장: 선택한 값을 선택한 객체에 기록12/12
flag-free/03-arw-flagfree.html케이지 내부 read64 / write64 (가짜 PACKED_DOUBLE 배열)2/12 (불안정, 재시도)
파일설명검증
rce-no-aslr/exploit-calc.html렌더러에서 execve를 통해 실제 xcalc 창을 띄움깨끗한 상태에서 약 1초 내에 팝업
rce-no-aslr/exploit-exit.html렌더러가 주입된 셸코드를 실행하여 exit(66); #jmp가 RIP를 그 안에서 회전exit(66) 8/8 (strace)