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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-4692-trust-me-im-in-rdm — Firefox BrowsingContext 권한 부여 우회(CVE-2026-4692)에 대한 개념 증명 익스플로잇으로, 위조된 IPC 메시지를 통해 InRDMPane을 설정하고 권한 있는 UI 터치 이벤트 주입을 활성화하는 방법을 시연합니다. | Kitploit
도구/GitHubGitHub/sneakynachos/cve-2026-4692-trust-me-im-in-rdm
Privilege EscalationExploit FrameworksVulnerability AnalysisExploitationWeb Application ExploitationRed TeamingPayload Development
GitHubsneakynachos/cve-2026-4692-trust-me-im-in-rdm

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-4692-trust-me-im-in-rdm

Firefox BrowsingContext 권한 부여 우회(CVE-2026-4692)에 대한 개념 증명 익스플로잇으로, 위조된 IPC 메시지를 통해 InRDMPane을 설정하고 권한 있는 UI 터치 이벤트 주입을 활성화하는 방법을 시연합니다.

저장소 보기
11일 전아직 검토되지 않음

CVE-2026-4692 — 콘텐츠 프로세스가 스스로를 RDM으로 선언할 수 있음

BrowsingContext 필드 동기화의 누락된 권한 검사에 대한 개념 증명: 손상된 콘텐츠 프로세스가 자체 최상위 BrowsingContext에 InRDMPane = true를 설정하는 PContent::CommitBrowsingContextTransaction 메시지를 위조하고, 부모 프로세스가 이를 적용합니다.

대상: Firefox 149.0a1 nightly @ 2fbc0748c4 (취약, 수정 전), macOS arm64. Firefox 149에서 수정됨 — 버그 2017643, 커밋 a9279ce332ed ("Prevent toggling RDM BrowsingContext flag from content processes"), 다음을 추가:

root@kitploit:~
bool BrowsingContext::CanSet(FieldIndex<IDX_InRDMPane>, const bool&,
                             ContentParent* aSource) {
  return XRE_IsParentProcess() && IsTop() && !aSource;   // 콘텐츠에서 온 경우 거부
}

왜 중요한가

InRDMPane은 탭이 반응형 디자인 모드(RDM) 창임을 부모 프로세스에 알려줍니다. 부모 프로세스는 합성 터치 이벤트의 히트 테스트(BrowserParent::RecvDispatchTouchEvent) 시 이를 신뢰합니다: 명목상 RDM 창을 대상으로 하는 이벤트는 권한 있는 크롬 UI에 도달할 수 있습니다. 플래그를 설정한 손상된 콘텐츠 프로세스는 음수/콘텐츠 외 좌표로 터치 이벤트를 보내 사용자 상호작용 없이 권한 있는 UI를 클릭할 수 있습니다 (버그 2017643의 리포터 repro.patch 참조 — 패치된 빌드로 정확히 이를 시연합니다). 이 저장소는 실제 메시지 위조를 통해 활성화 경계 위반 자체를 시연합니다 — 브라우저 소스 패치는 없습니다.

메시지 (와이어 형식, 빌드의 생성된 IPC 코드에서 추출)

PContent::CommitBrowsingContextTransaction — 메시지 유형 0x3a0137 (PContentMsgStart=58 << 16 | 서수 311), 라우팅 MSG_ROUTING_CONTROL (INT64_MAX), 플래그 NOT_NESTED (0x001):

root@kitploit:~
u64  bcid                센티널 235406151 ('aContext')
u64  0x0000000000800000  수정된 비트셋 워드0 (비트 23 = InRDMPane)
u64  0                   비트셋 워드1   (BitSet<84> 워드는 size_t = u64!)
u32  1                   WriteBool(true)
u32  523371752           센티널 'aTransaction'
u64  epoch               (epoch 검사는 MOZ_ASSERT 전용; 여기서는 컴파일 제외)
u32  132121169           센티널 'aEpoch'

전달은 CVE-2026-74939 전송 경로를 재사용합니다: operator new → IPC::Message::Message(routing, type, capacity, flags) → Pickle::WriteBytes → PContent 채널의 MessageChannel::Send, wasm funcref-call 프리미티브(wasm-bytes.js, 1단계 = CVE-2026-2796)를 통해 JS에서 구동.

증거

부모 측 로그 (MOZ_LOG=BrowsingContextSync:5) ./irun 실행 후:

root@kitploit:~
D/BrowsingContextSync Transaction::Apply(#380000001, ipc): InRDMPane(false->true)

#380000001은 팝업의 최상위 BrowsingContext(자식 할당 ID, from IPC로 생성)이며, ipc는 트랜잭션이 콘텐츠에서 시작되었음을 표시합니다. 수정된 빌드에서는 동일한 메시지가 CanSet 검증에 실패하여 거부됩니다.

파일

실행

전제 조건: 취약한 Nightly 빌드 /Users/sid/gecko-2766/obj-browser, psutil이 포함된 .venv, 번들된 로깅 서버 실행:

root@kitploit:~
python3 srv.py > /tmp/srv4692.log 2>&1 &   # 이 디렉토리를 :8781에서 서빙
python3 forge_bctx.py                      # bctx.bin/bctx.json 빌드
./irun                                     # 실행 + 주입 + 증거 수집

참조

  • Mozilla 버그 2017643 — 수정 커밋 a9279ce332ed (MFSA 2026-20, Firefox 149)
  • CVE-2026-74939 — 이 PoC가 재사용하는 전송 경로 메커니즘 (../poc-cve-2026-74939)
  • CVE-2026-12295 — 유사한 로드 상태 위조 (../poc-cve-2026-12295)
도구 다운로드
파일용도
bctx.htmlPoC 페이지: 런타임에 팝업 BC ID를 계산하여 위조 메시지에 패치하고 전송
forge_bctx.pybctx.bin/bctx.json 빌드(자체 검증), BC ID를 제외하고 완전히 정적
wasm-bytes.js1단계 프리미티브: 임의 읽기/쓰기, funcref 호출
mdrive2.py마리오네트 하네스
irun계측 실행: lldb 연결 + BrowsingContextSync 증거
srv.pyPoC 페이지용 로깅 웹 서버 (:8781)
profile.user.jsFirefox 프로필 환경설정 (fission 켜짐, 덤프 활성화)