微软 FORGE 实验室依靠自研 AI 漏洞扫描工具 Hyenas(MDASH),在 Rust 标准库 std、core 里面挖出多个内存安全缺陷,其中 process::exit 相关信号栈释放错误漏洞从 2015 年就存在,潜藏时长接近 11 年,就算开发者只写 safe Rust 代码,也有可能触发未定义行为;这个问题的根源不是 Rust 安全模型失效,而是标准库底层大量依赖 unsafe 代码实现,一旦 unsafe 代码打破安全契约,上层安全代码就会踩坑,目前这批漏洞已经提交给 Rust 社区,重点漏洞在 2026 年 8 月完成修复合并,不过开发者要分清,这类漏洞属于标准库底层实现缺陷,不代表 Rust 语言的内存安全设计整体失效。
一、漏洞基础信息清单
- 发现团队:微软 FORGE Lab(前沿攻防与生成式利用实验室)
- 扫描工具:Hyenas,属于 AI 智能体漏洞挖掘系统,是 MDASH 的前沿版本
- 受影响范围:Rust 标准库 core、std 模块,含 process::exit 信号栈漏洞
- 核心漏洞:信号栈释放逻辑错误,主进程收到信号时,出现释放后引用,引发程序崩溃
- 起始时间:2015 年引入,潜伏近 11 年
- 修复状态:该高危漏洞已于 2026 年 8 月在 Rust 仓库合并修复
- 触发特点:上层纯 safe Rust 代码也能触发,不需要开发者手动写 unsafe 代码
二、漏洞成因分类表
| 问题类型 | 产生原因 | 风险表现 |
|---|---|---|
| 错误信任代码不 panic | unsafe 代码假设上游不会触发 panic,实际异常发生后破坏内存契约 | 内存错乱、未定义行为 |
| 信任外部实现正确 | 依赖用户传入 trait 实现,没有做充分校验 | 逻辑越界、状态不一致 |
| 信任底层系统稳定 | 直接依赖操作系统行为,没有兜底保护 | 系统信号、异步场景下触发缺陷 |
| 本次 11 年信号栈漏洞 | process::exit 处理时错误释放主线程信号备用栈 | 时机巧合下访问已释放内存,程序崩溃 |
三、Rust 安全模型和本次漏洞的区别
很多人会误以为 Rust 号称内存安全,就不会出现这类问题,这里要分开理解:
- Rust 的安全保证,是开发者写 safe Rust 代码时,编译器阻止内存错误,前提是底层 unsafe 代码遵守安全约定。
- 标准库为了实现功能,内部大量封装 unsafe 代码,这部分代码不在编译器的自动安全保护里。
- 只要标准库内部 unsafe 代码写错,上层 safe Rust 调用对应 API,就会突破安全边界,出现未定义行为。
- 这类漏洞属于库实现 bug,不是语言所有权、借用检查机制本身的设计缺陷。
四、AI 漏洞挖掘方式对比
| 方式 | 能力特点 | 本次表现 |
|---|---|---|
| 人工代码审计 | 适合理解复杂逻辑,耗时久,长期潜伏漏洞容易漏掉 | 这个 11 年漏洞长期没有被人工审计发现 |
| 传统模糊测试 | 适合找输入触发崩溃,对逻辑契约类缺陷能力弱 | 很难定位 unsafe 安全契约破坏问题 |
| 微软 AI 智能体扫描(Hyenas) | 自动推导 unsafe 代码安全契约、反向寻找违反契约的路径 | 批量挖出 Rust 标准库多起隐藏内存问题 |
五、开发者落地处置步骤
- 版本核查:查看项目使用的 Rust 版本,确认是否已经包含 2026 年 8 月合并的信号栈修复补丁。
- 升级工具链:优先升级到修复完成的稳定版 Rust,避免依赖带漏洞的旧标准库。
- 高风险场景自查:长时间运行的后台服务、信号处理频繁的程序,重点关注 process::exit 调用链路。
- 引入多种检测手段:结合模糊测试、Miri、AI 漏洞扫描工具,定期审计 unsafe 封装模块。
- 规范内部 unsafe 使用:团队写 unsafe 代码时,强制写清楚安全契约,降低契约被破坏的概率。
- 持续跟进 Rust 社区安全公告,同步接收后续标准库的安全补丁。
六、风险边界说明
- 漏洞触发需要特定时序条件,不是调用 process::exit 就一定会崩溃,属于条件触发缺陷。
- 目前披露的这批漏洞以程序崩溃、拒绝服务为主,暂未公布远程代码执行的利用链。
- 除了这个 11 年老漏洞,AI 工具还同步挖出了其他若干标准库内存问题,正在分批提交修复。
【常见问题】
问题 1:微软 AI 漏洞猎手发现潜藏近 11 年的 Rust 漏洞,是不是 Rust 的内存安全机制失效了?
回答 1:微软 AI 漏洞猎手发现潜藏近 11 年的 Rust 漏洞,并不是 Rust 内存安全机制失效,漏洞出在标准库底层 unsafe 代码违背安全契约,上层 safe Rust 跟着受影响,语言本身的借用、所有权检查规则没有被攻破。
问题 2:微软 AI 挖出的这个潜伏近 11 年的 Rust 漏洞,哪些代码会受影响?
回答 2:微软 AI 挖出的这个潜伏近 11 年的 Rust 漏洞,影响 Rust 标准库 process::exit 信号处理逻辑,开发者即使只写 safe Rust、调用对应 API,在特定信号时序场景下也可能触发程序崩溃。
问题 3:微软用 AI 漏洞猎手找到 Rust 这个长期漏洞,普通 Rust 开发者该怎么防护?
回答 3:普通 Rust 开发者想要防护微软 AI 漏洞猎手发现的这类 Rust 漏洞,需要升级 Rust 工具链到包含修复的版本,高风险服务增加 Miri、模糊测试,同时严控项目内部 unsafe 代码的编写规范。
【参考资料】
[2026-11-09](FORGE Lab uses agentic tools to identify memory safety issues in Rust)微软安全博客
[2026-11-10](微软 AI 智能体发现 Rust 标准库内存安全漏洞,含潜伏 11 年缺陷)Security Measures Lab
[2026-11-10](Microsoft AI Security Researchers Discover Multiple Memory-Safety Bugs in Rust)Undercode News
[2026-11-09](Rust std 库被 AI 挖出多个内存漏洞,safe 代码也会触发)InfoQ
【免责声明】
本文为微软 AI 挖掘 Rust 漏洞的技术科普,漏洞触发条件、补丁版本、风险等级以 Rust 官方仓库、微软 FORGE 实验室公告为准;Rust 项目安全评估不能只依靠本次修复,高安全等级软件需要完整的审计、模糊测试流程,本文不构成软件开发、安全验收的直接依据。
