文章总结: DirtyFrag是Linux内核高危提权漏洞,利用xfrm-ESP和RxRPC模块零拷贝路径逻辑缺陷,使普通用户可覆写系统文件获取root权限。影响Ubuntu、RHEL、WSL2等2017年后多数发行版。当前无官方补丁,建议立即通过禁用esp4/esp6/rxrpc模块临时缓解,并关注发行版安全公告等待内核更新。 综合评分: 85 文章分类: 漏洞分析,漏洞预警,应急响应,红队,Linux安全
Dirty Frag Linux提权漏洞的复现和修复建议
原创
SAINTSEC SAINTSEC
SAINTSEC
2026年5月8日 13:00 广东
在小说阅读器读本章
去阅读
1. 漏洞概要
Dirty Frag漏洞允许一个仅有普通用户权限的攻击者获取整个Linux系统的root管理员权限。
-
风险性极高:此漏洞是确定性逻辑漏洞,利用成功率高且稳定,复杂性低。
-
行动紧急:由于暂无官方补丁,建议所有Linux系统管理员立即评估并应用上述临时缓解方案,同时密切关注各大发行版的官方安全公告,以便在正式补丁发布后第一时间部署。
-
根本原因:该漏洞利用了两个独立的内核模块(
xfrm-ESP和RxRPC)在执行零拷贝(zero-copy)发送路径时的逻辑缺陷。正常的零拷贝路径避免了数据在内核内存缓冲区间的移动,以达到更高的网络效率。然而,漏洞代码错误地将一个攻击者只有只读权限的页缓存(page cache)页引用放置到了可写的(writeable)发送槽(frag slot)中。随后,接收端的内核代码在这个槽位上执行“就地(in-place)”加密操作,这使得攻击者能够覆写页缓存中关键系统文件(如/etc/passwd)的副本,从而实现权限提升。 -
受影响系统范围:自2017年起发布的大多数Linux发行版均受影响,包括但不限于:
-
主流发行版:Ubuntu, Arch, RHEL, OpenSUSE, CentOS Stream, Fedora, AlmaLinux。
-
其他系统:微软的WSL2(Windows Subsystem for Linux)也被证实可被利用。
2. 复现方法
此漏洞的复现方法主要分为三步:确认存在漏洞的模块、获取并编译公开的PoC、执行PoC以获取root权限。
请务必在你自己拥有合法授权的测试环境(如独立的虚拟机)中进行,切勿在未经授权的生产系统上尝试。执行PoC可能导致内核不稳定或数据损坏。在开始前,请确保测试系统没有重要数据,或已做好完整快照。
#
2.1 环境准备:确认漏洞模块存在
Dirty Frag 漏洞依赖于esp4, esp6, rxrpc这三个内核模块。请使用以下命令检查目标系统是否存在这些模块:
lsmod | grep-E’esp4|esp6|rxrpc’
如果返回结果中显示了上述模块,则系统满足漏洞利用的基本条件之一。POC在github已经公开,可自行下载编译测试,以普通用户身份运行编译好的exp程序。如果漏洞利用成功,你会看到shell提示符直接变为root(#)。漏洞利用成功后,你将获得一个具有root权限的shell,可以执行任何命令.这标志着一个仅有普通用户权限的攻击者已成功获得系统的最高控制权。
3. 修复与缓解建议
截至2026-05-08,Linux内核主线及各大发行版尚无官方补丁可供安装修复。因此,当前最有效的措施是临时缓解方案。
3.1 临时缓解方案:禁用受影响的内核模块
由于Dirty Frag 利用的漏洞位于 esp4、esp6 和 rxrpc 这三个内核模块中,完全禁用它们是最直接的防御方法。这些模块与IPSec网络和AFS文件系统相关,大多数桌面系统和普通服务器并不依赖它们。
请使用以下命令进行缓解:
sudo sh -c “printf ‘install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n’ > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; true”
-
命令解释:
-
它会创建一个配置文件,防止系统在未来重启时自动加载这些模块。
-
它会立即从当前运行的内核中卸载这些模块。
-
注意事项:如果你的服务器或应用确实依赖IPsec ESP或RxRPC功能,禁用这些模块会影响相关服务。在此之前,请务必进行充分评估。
#
3.2 长期修复方案
唯一的根本性解决方案是等待各Linux发行版发布包含安全补丁的内核更新(Backport)。
- 密切关注你所使用的Linux发行版的官方安全公告(Security Advisory)。
- 当补丁发布后,立即通过系统的包管理器(如
apt,yum,dnf,pacman等)更新内核(kernel) 和内核模块(kernel-modules)。 - 安装完成后,重启系统以使新内核生效。
#
3.3 验证是否已保护
在你实施了上述缓解或修复方案后,可以再次运行以下命令来验证:
lsmod | grep -E’esp4|esp6|rxrpc’
如果没有任何输出,则表示这些模块已成功卸载且未加载,你的系统目前是安全的。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:SAINTSEC SAINTSEC SAINTSEC《Dirty Frag Linux提权漏洞的复现和修复建议》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论