文章总结: Linux内核近日修复了首个Rust代码漏洞CVE-2025-68260,该漏洞影响用Rust重写的AndroidBinder驱动。问题源于Node::release逻辑中的竞态条件,当多个线程同时操作链表元素时可能导致内存损坏和系统崩溃。修复方案重写了Node::release函数,直接从原始链表中提取元素。该漏洞引入于Linux6.18,已在6.18.1和6.19-rc1中修复,建议用户升级至最新稳定内核版本。 综合评分: 87 文章分类: 漏洞分析,二进制安全,安全开发,漏洞预警,数据安全
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曝光》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论