Rust借用检查器潜伏11年的漏洞

11 year old unsoundness bugs found in Rust borrow checker

Rust借用检查器潜伏11年的漏洞

Rust社区近日发现了一个令人震惊的漏洞:其引以为傲的借用检查器(borrow checker)中存在一个潜伏了11年的安全性问题。该漏洞允许开发者通过协变字段赋值绕过结构体的生命周期要求,导致程序在编译通过的情况下出现悬垂指针或访问已释放内存的未定义行为。这一严重问题最早可追溯至2017年的1.18.0版本,甚至在1.4版本中就已存在。社区成员展示了多个复现代码,证明了该漏洞能轻易绕过T: 'static约束,引发AddressSanitizer崩溃。目前该问题已被标记为高危优先级,Rust类型团队正在紧急评估修复方案。

这个漏洞的核心在于:代码在drop方法中访问了一个非'static生命周期的String引用,却错误地假设它是一个'static String。

同日更多故事

2026-10-13