安全研究人员披露了Linux 内核一处全新未修复漏洞,代号 Dirty Frag。该漏洞允许本地低权限用户在主流 Linux 发行版中直接获取完整 Root 权限,受影响系统包括 Ubuntu、RHEL、Fedora、AlmaLinux 以及 CentOS Stream。
Dirty Frag 隶属于 Dirty Pipe 漏洞家族,但不受 Copy Fail 漏洞缓解措施的防护。也就是说,即便系统已部署 algif_aead 黑名单防护策略,仍会完全暴露在该漏洞风险之下。
安全公告中写道:“攻击者可通过链式利用 xfrm-ESP 页缓存写入漏洞与 RxRPC 页缓存写入漏洞,在主流 Linux 发行版上获取 Root 权限。Dirty Frag 拓展了 Dirty Pipe、Copy Fail 所属的漏洞类型范畴。该漏洞属于确定性逻辑漏洞,无需依赖时间窗口、不存在竞态条件;漏洞利用失败时不会触发内核宕机,且攻击成功率极高。”
该漏洞由安全研究员 Hyunwoo Kim(账号 @v4bel)首次对外披露。
此漏洞为双漏洞链式组合利用:第一个是 xfrm-ESP 页缓存写入漏洞,根源位于 Linux IPsec 子系统,由 2017 年 1 月的一次代码提交引入,此次提交同时也造成了 CVE-2022-27666 缓冲区溢出漏洞,影响多款 Linux 发行版。第二个是 RxRPC 页缓存写入漏洞,于 2023 年 6 月被引入内核。
两个漏洞单独利用均无法适配所有系统,但组合后可互相弥补环境短板:当其中一条利用路径被环境限制拦截(例如 Ubuntu 的 AppArmor 限制用户命名空间创建)时,另一条路径仍可正常利用。这种链式特性让 Dirty Frag 对各大 Linux 发行版均具备普遍威胁性。
技术分析指出:“两个漏洞的共性原理为:在零拷贝发送路径中,splice() 会将攻击者仅有只读权限的页缓存页面引用,直接存入发送端套接字缓冲区的分片槽位;随后接收端内核会对该分片执行原地加密运算。最终,低权限用户仅有读取权限的文件页缓存(如 /etc/passwd、/usr/bin/su)会在内存中被篡改,后续所有读取操作都会加载被篡改的文件副本。”
Dirty Frag 的高危性还体现在利用稳定性上:不同于多数依赖精准时间窗口、竞态条件的内核漏洞利用程序,该漏洞是确定性逻辑漏洞,利用失败不会导致内核崩溃,且成功率极高。目前可直接运行的概念验证 EXP 已公开,仅需一条命令即可完成漏洞利用。
本次漏洞披露过程存在波折:第三方机构未经过协调,提前公开了详细技术细节与漏洞利用代码,打破了官方保密协议。目前该漏洞暂未分配 CVE 编号。
报告总结称:“将两类漏洞链式组合可实现环境短板互补。在允许创建用户命名空间的环境中,可优先利用 ESP 漏洞;而在 Ubuntu 等禁用用户命名空间、但内置编译 rxrpc.ko 模块的系统上,RxRPC 漏洞利用方式依然生效。”
在官方补丁发布前,临时防护建议:将 esp4、esp6、rxrpc 内核模块加入黑名单,禁止其加载运行。