修复 InputInjector 中的 UAF(Use-After-Free)漏洞

提交: 54788bf2 | 2025-07-16 11:17:01+00:00

← 返回列表

修复 InputInjector 中的 UAF(Use-After-Free)漏洞

Moderate
提交哈希: 54788bf20c04579648d93dfbe0deb1840fb819ca
提交时间: 2025-07-16 11:17:01+00:00
影响等级: Moderate
生成工具: webview2-upstream-sentry
上游审核链接: 查看上游审核 🔗

📋 摘要

本次提交修复了 DevTools Input 协议处理器中 InputInjector 类的 Use-After-Free 安全漏洞。具体修改包括在 InjectWheelEvent 和 InjectMouseEvent 方法中添加了 WeakPtr 检查机制。在调用 widget_host_->ForwardWheelEvent() 和 widget_host_->ForwardMouseEvent() 后,通过检查 weak_this 指针是否仍然有效来避免在事件被丢弃时继续访问已销毁的 InputInjector 对象。该修复确保了在输入事件转发过程中,如果 InputInjector 对象被意外销毁,代码能够安全地提前返回,防止内存访问错误。

🎯 影响分析

这次修复对终端用户和开发者都有重要的安全价值。对于终端用户,该修复提高了 Chrome 浏览器的稳定性和安全性,防止了在使用 DevTools 进行输入事件注入时可能出现的崩溃或不稳定行为。对于开发者,特别是使用 Chrome DevTools Protocol (CDP) 进行自动化测试、性能分析或调试的开发者,这个修复确保了通过 Input 域进行鼠标和滚轮事件注入的可靠性。该修复降低了在复杂的异步事件处理场景中出现内存安全问题的风险,使得依赖 CDP 的自动化工具和测试框架更加稳定可靠。虽然这是一个低级别的内存安全修复,但它对整个 DevTools 生态系统的稳定性具有重要意义。

受影响的类:

InputHandler::InputInjector