Linux内核首个Rust漏洞CVE-2025-68260曝光

admin 2025-12-22 03:48:27 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: Linux内核近日修复了首个Rust代码漏洞CVE-2025-68260,该漏洞影响用Rust重写的AndroidBinder驱动。问题源于Node::release逻辑中的竞态条件,当多个线程同时操作链表元素时可能导致内存损坏和系统崩溃。修复方案重写了Node::release函数,直接从原始链表中提取元素。该漏洞引入于Linux6.18,已在6.18.1和6.19-rc1中修复,建议用户升级至最新稳定内核版本。 综合评分: 87 文章分类: 漏洞分析,二进制安全,安全开发,漏洞预警,数据安全


cover_image

Linux内核首个Rust漏洞CVE-2025-68260曝光

FreeBuf

2025年12月20日 18:03 上海

Linux 内核近日修复了编号为 CVE-2025-68260 的漏洞——这是主线内核中首个正式分配给 Rust 代码的 CVE。Greg Kroah-Hartman 报告了该问题,该漏洞影响用 Rust 重写的 Android Binder 驱动,最坏情况下可能导致系统崩溃。

Part01

漏洞根源分析

该漏洞的核心在于 Rust 版 Binder 实现中的一项不安全操作:当某个元素从链表中移除时,另一个线程可能同时操作相同的 prev/next 指针。设计时假设 NodeDeath 对象永远不会出现在”外部”链表中,但实际运行中出现了同一元素可能被多个上下文同时处理的情况。

Part02

竞态条件导致内存损坏


问题源于 Node::release 的逻辑:获取锁后将所有元素移至基于栈的临时链表,释放锁后再遍历本地链表。若此时另一线程对原始链表执行不安全移除操作,就会产生竞态条件,破坏 prev/next 指针,最终导致内存损坏和内核崩溃。一个典型故障表现为 rust_binder 模块出现”无法处理内核分页请求”错误。

Part03

修复方案与影响范围

修复方案重写了 Node::release,直接从原始链表中提取元素,彻底消除了基于栈的中间链表。根据 Linux 内核 CVE 团队披露,该漏洞引入于 Linux 6.18(提交 eafedbc7c050c44744fbdf80bdf3315e860b7513),已在 6.18.1(3428831264096d32f830a7fcfc7885dd263e511a)和 6.19-rc1(3e0ae02ba831da2b707905f4e602e43f8507b8cc)中修复,受影响文件为 drivers/android/binder/node.rs。

Part04

升级建议

作为缓解措施,Linux 内核 CVE 团队强烈建议升级至最新稳定内核版本:单个变更不会进行独立测试,官方也不支持选择性应用补丁。若无法升级,可通过参考稳定分支仓库中的相关提交获取必要修复。

参考来源:

Rust’s First Breach: CVE-2025-68260 Marks the First Rust Vulnerability in the Linux Kernel

Rust’s First Breach: CVE-2025-68260 Marks the First Rust Vulnerability in the Linux Kernel


#

#

#

推荐阅读

#

电台讨论


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:FreeBuf 《Linux内核首个Rust漏洞CVE-2025-68260曝光》

评论:0   参与:  2