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
权限提升漏洞利用框架漏洞分析漏洞利用Web应用程序漏洞利用红队Payload 开发
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 字段同步缺失授权检查的概念验证:一个被攻破的内容进程伪造 PContent::CommitBrowsingContextTransaction 消息,在其自身的顶层 BrowsingContext 上设置 InRDMPane = true,而父进程直接应用了该设置。

目标:Firefox 149.0a1 nightly @ 2fbc0748c4(存在漏洞,修复前版本),macOS arm64。 已在 Firefox 149 中修复 — bug 2017643,提交 a9279ce332ed(“阻止内容进程切换 RDM BrowsingContext 标志”),该提交新增了:

root@kitploit:~
bool BrowsingContext::CanSet(FieldIndex<IDX_InRDMPane>, const bool&,
                             ContentParent* aSource) {
  return XRE_IsParentProcess() && IsTop() && !aSource;   // 若来自内容进程则拒绝
}

为何重要

InRDMPane 告知父进程该标签页是响应式设计模式(RDM)窗格。父进程在命中测试合成触摸事件时 (BrowserParent::RecvDispatchTouchEvent)信任该标志:名义上针对 RDM 窗格的事件被允许落在 特权 chrome UI 上。被攻破的内容进程设置该标志后,可以发送带有负坐标/内容外坐标的触摸事件, 在无需用户交互的情况下点击特权 UI(参见报告者在 bug 2017643 上的 repro.patch, 该补丁使用打过补丁的构建精确演示了这一点)。本仓库演示了使能边界违规本身, 使用真实的消息伪造 — 无需修改浏览器源码。

消息(线格式,从构建生成的 IPC 代码中提取)

PContent::CommitBrowsingContextTransaction — 消息类型 0x3a0137 (PContentMsgStart=58 << 16 | ordinal 311),路由 MSG_ROUTING_CONTROL (INT64_MAX),标志 NOT_NESTED(0x001):

root@kitploit:~
u64  bcid                哨兵值 235406151 ('aContext')
u64  0x0000000000800000  修改位集 word0(第 23 位 = InRDMPane)
u64  0                   位集 word1   (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 调用原语从 JS 驱动 (wasm-bytes.js,阶段 1 = CVE-2026-2796)。

证据

运行 ./irun 后的父进程侧日志(MOZ_LOG=BrowsingContextSync:5):

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

#380000001 是弹窗的顶层 BrowsingContext(子进程分配的 id, 通过 from IPC 创建),ipc 标记该事务为内容进程发起。 在已修复的构建上,相同的消息会通过 CanSet 验证失败并被拒绝。

文件

运行

前置条件:位于 /Users/sid/gecko-2766/obj-browser 的存在漏洞的 Nightly 构建, 包含 psutil 的 .venv,以及正在运行的捆绑日志服务器:

root@kitploit:~
python3 srv.py > /tmp/srv4692.log 2>&1 &   # 在 :8781 上提供此目录服务
python3 forge_bctx.py                      # 构建 bctx.bin/bctx.json
./irun                                     # 启动 + 注入 + 收集证据

参考

  • Mozilla bug 2017643 — 修复提交 a9279ce332ed(MFSA 2026-20,Firefox 149)
  • CVE-2026-74939 — 本仓库复用的发送路径机制(../poc-cve-2026-74939)
  • CVE-2026-12295 — 同类加载状态伪造(../poc-cve-2026-12295)
下载工具
文件用途
bctx.htmlPoC 页面:运行时计算弹窗 BC id,将其修补到伪造消息中并发送
forge_bctx.py构建 bctx.bin/bctx.json(自验证),除 BC id 外完全静态
wasm-bytes.js阶段 1 原语:任意读写、funcref 调用
mdrive2.pymarionette 测试框架
irun插桩运行:lldb 附加 + BrowsingContextSync 证据
srv.py用于 PoC 页面的日志 Web 服务器(:8781)
profile.user.jsFirefox 配置文件首选项(启用 fission,启用 dump)