来源笔记
Agentic Vulnerability Reasoning on Windows COM Binaries
摘要
Slyp 是一个代理式系统,用于发现 Windows COM 二进制中的竞争条件漏洞,并生成经过调试器验证的 C++ 概念验证程序。它把 LLM 推理与二进制分析、COM 元数据查询和实时调试工具结合起来。
问题
- 具有特权的 Windows COM 服务把可通过 RPC 访问的方法暴露给已认证用户,所以竞争条件会变成本地权限提升漏洞。
- 这类漏洞很难发现,因为经过优化的二进制会丢失源代码级类型和符号,而分析还要跟踪共享对象字段、锁、线程交错和 COM 虚表分发。
- 现有模糊测试器很难碰到时序窗口,在这项评估中 COMRace 还报告了很多误报,F1 只有 0.299。
方法
- Slyp 使用一个 ReAct 风格的 LLM 代理,分成两个阶段:发现和概念验证生成。
- 在发现阶段,代理调用用于反汇编、反编译、交叉引用、调用图和 COM 虚调用解析的 MCP 二进制探索工具。
- 在概念验证生成阶段,代理调用 COM 检查工具,恢复 CLSID、接口、安全描述符、激活模式和方法签名。
- 然后代理使用动态调试工具,在真实的 Windows COM 服务上编译、运行、做崩溃测试,并改进 C++ 概念验证。
- 系统加入了检查点、文件记忆、BM25 检索和停止时验证,这样长时间的二进制分析会话可以跨过上下文限制和提前退出继续运行。
结果
- 在覆盖 40 个漏洞案例的 20 个 COM 对象基准上,Slyp 使用 GPT-5.4 达到 0.973 F1。
- 已报告的最佳生产级代理基线中,Codex with GPT-5.4 达到 0.910 F1,Claude Code with Opus 4.6 达到 0.724 F1;Slyp 在测试过的生产级代理配置中最高领先 0.208 F1。
- 相比 COMRace++,论文报告漏洞发现能力提升 3.3 倍,比较的是 Slyp 的 0.973 F1 和 COMRace++ 的 0.299 F1。
- 在概念验证生成上,最强的 Slyp 配置验证通过 40 个案例中的 27 个,即 67.5%;没有 COM 检查和调试工具的生产级编码代理几乎无法验证任何案例。
- 排名前四的 Slyp 配置合计解决了 40 个概念验证案例中的 34 个。
- 在生产环境的 Windows 服务中,Slyp 发现了 9 个 COM 服务里的 28 个此前未知漏洞;MSRC 全部确认,分配了 16 个 CVE,并发放了 140,000 美元奖金。