Greg Kroah-Hartman本周在荷兰乌得勒支举行的RustWeek 2026大会上透露,一项基于Rust语言的提案正在开发中,有望消除Linux内核大约80%的CVE漏洞。这一论断分量十足,因为他自2005年Linux内核安全团队成立以来,亲自审查了每一个内核安全漏洞。

核心问题正如Greg所见,在于不可信数据。无论数据来自用户空间还是硬件,内核都应对其保持警惕。然而C语言从未提供可靠的方法来强制执行这一原则:一旦数据从用户空间复制到内核中,它就变成普通指针,丢失了来源信息,被随意传递,而外部检查程序并非总能及时捕捉风险。
硬件层面带来同样的问题。内核原本假设硬件是可信的,但随着恶意硬件日益成为真实威胁,这一假设愈发难以维系。
在新提案正式落地之前,Rust已经展现出显著效果。忘记检查错误返回值和忘记释放锁是造成内核CVE的两大常见原因,而Rust在编译阶段就解决了这两个问题。Greg估计仅此两项修复就能覆盖约60%的内核漏洞。
不仅如此,为现有C代码编写Rust绑定,无形中促使内核维护者主动记录并思量自己的API,明确了所有权语义、锁规则以及常量正确性。
Greg的解决方案是一种名为Untrusted<T>的Rust类型,由他与内核贡献者Benno Lossin共同开发。该类型作为一个编译期标记,附加在来自用户空间或硬件的数据上,不会带来任何运行时开销。要访问底层数据,必须经过一个显式验证步骤将其转换为可信状态,从而将所有验证代码集中到一处可见、可审查的地方。
对于Linux用户而言,这意味着那些不断以安全更新形式分发到系统上的大量CVE,根本就不会出现。但需要指出的是,这一方案尚未合并——Rust编译器仍需调整,相关的字段投影工作也在同步推进。Greg在演讲结束时呼吁更多Rust内核开发者加入,并推荐从Rust for Linux邮件列表开始。
关注微信号:智享开源 ,及时了解更新信息。
原文链接:https://feed.itsfoss.com/link/24361/17345650/linux-kernel-rust-cve-reduction
| 投稿作者 | 作者网站 |
|---|---|
你必须 登录 才能发表评论.
| 微信捐赠 | 支付宝捐赠 |
|---|---|
![]() |
![]() |
扫码关注公众号:智享开源

[blog_mailer_subscribe]
还没有任何评论,你来说两句吧!