您的位置首页 >科技要闻 >

微软 AI 漏洞猎手发现潜藏近 11 年 Rust 标准库内存安全漏洞

微软 FORGE 实验室依靠自研 AI 漏洞扫描工具 Hyenas(MDASH),在 Rust 标准库 std、core 里面挖出多个内存安全缺陷,其中 process::exit 相关信号栈释放错误漏洞从 2015 年就存在,潜藏时长接近 11 年,就算开发者只写 safe Rust 代码,也有可能触发未定义行为;这个问题的根源不是 Rust 安全模型失效,而是标准库底层大量依赖 unsafe 代码实现,一旦 unsafe 代码打破安全契约,上层安全代码就会踩坑,目前这批漏洞已经提交给 Rust 社区,重点漏洞在 2026 年 8 月完成修复合并,不过开发者要分清,这类漏洞属于标准库底层实现缺陷,不代表 Rust 语言的内存安全设计整体失效。

一、漏洞基础信息清单

  1. 发现团队:微软 FORGE Lab(前沿攻防与生成式利用实验室)
  2. 扫描工具:Hyenas,属于 AI 智能体漏洞挖掘系统,是 MDASH 的前沿版本
  3. 受影响范围:Rust 标准库 core、std 模块,含 process::exit 信号栈漏洞
  4. 核心漏洞:信号栈释放逻辑错误,主进程收到信号时,出现释放后引用,引发程序崩溃
  5. 起始时间:2015 年引入,潜伏近 11 年
  6. 修复状态:该高危漏洞已于 2026 年 8 月在 Rust 仓库合并修复
  7. 触发特点:上层纯 safe Rust 代码也能触发,不需要开发者手动写 unsafe 代码

二、漏洞成因分类表

问题类型产生原因风险表现
错误信任代码不 panicunsafe 代码假设上游不会触发 panic,实际异常发生后破坏内存契约内存错乱、未定义行为
信任外部实现正确依赖用户传入 trait 实现,没有做充分校验逻辑越界、状态不一致
信任底层系统稳定直接依赖操作系统行为,没有兜底保护系统信号、异步场景下触发缺陷
本次 11 年信号栈漏洞process::exit 处理时错误释放主线程信号备用栈时机巧合下访问已释放内存,程序崩溃

三、Rust 安全模型和本次漏洞的区别

很多人会误以为 Rust 号称内存安全,就不会出现这类问题,这里要分开理解:

  1. Rust 的安全保证,是开发者写 safe Rust 代码时,编译器阻止内存错误,前提是底层 unsafe 代码遵守安全约定。
  2. 标准库为了实现功能,内部大量封装 unsafe 代码,这部分代码不在编译器的自动安全保护里。
  3. 只要标准库内部 unsafe 代码写错,上层 safe Rust 调用对应 API,就会突破安全边界,出现未定义行为。
  4. 这类漏洞属于库实现 bug,不是语言所有权、借用检查机制本身的设计缺陷。

四、AI 漏洞挖掘方式对比

方式能力特点本次表现
人工代码审计适合理解复杂逻辑,耗时久,长期潜伏漏洞容易漏掉这个 11 年漏洞长期没有被人工审计发现
传统模糊测试适合找输入触发崩溃,对逻辑契约类缺陷能力弱很难定位 unsafe 安全契约破坏问题
微软 AI 智能体扫描(Hyenas)自动推导 unsafe 代码安全契约、反向寻找违反契约的路径批量挖出 Rust 标准库多起隐藏内存问题

五、开发者落地处置步骤

  1. 版本核查:查看项目使用的 Rust 版本,确认是否已经包含 2026 年 8 月合并的信号栈修复补丁。
  2. 升级工具链:优先升级到修复完成的稳定版 Rust,避免依赖带漏洞的旧标准库。
  3. 高风险场景自查:长时间运行的后台服务、信号处理频繁的程序,重点关注 process::exit 调用链路。
  4. 引入多种检测手段:结合模糊测试、Miri、AI 漏洞扫描工具,定期审计 unsafe 封装模块。
  5. 规范内部 unsafe 使用:团队写 unsafe 代码时,强制写清楚安全契约,降低契约被破坏的概率。
  6. 持续跟进 Rust 社区安全公告,同步接收后续标准库的安全补丁。

六、风险边界说明

  1. 漏洞触发需要特定时序条件,不是调用 process::exit 就一定会崩溃,属于条件触发缺陷。
  2. 目前披露的这批漏洞以程序崩溃、拒绝服务为主,暂未公布远程代码执行的利用链。
  3. 除了这个 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 项目安全评估不能只依靠本次修复,高安全等级软件需要完整的审计、模糊测试流程,本文不构成软件开发、安全验收的直接依据。

今日大家都在搜的词: