近日,Linux内核被曝出一个代号为“Dirty Frag”的高危本地提权漏洞。该漏洞可被攻击者链式利用,在几乎所有主流Linux发行版上将普通用户权限提升至root,甚至实现容器逃逸。目前已有安全研究人员公开了漏洞细节及概念验证(PoC)代码,且微软已证实观察到有限度的实际攻击活动。
漏洞概述
何为Dirty Frag?
Dirty Frag是安全研究员Hyunwoo Kim(@v4bel)于2026年5月7日公开披露的一类Linux内核本地提权漏洞 。它与2022年的Dirty Pipe(CVE-2022-0847)、2026年4月的Copy Fail(CVE-2026-31431)属于同一漏洞家族,均利用Linux内核页面缓存(Page Cache)与splice()系统调用零拷贝机制的设计缺陷,实现对只读文件的篡改与权限提升 。
Dirty Frag实际由两个独立漏洞组合构成,两者互相覆盖攻击盲区,因而可实现“通杀”主流发行版的效果:
该漏洞最大的技术特点是具备高稳定性与确定性。以往的许多内核漏洞依赖复杂的竞争条件(Race Condition),攻击成功率不高且易导致系统崩溃(拒绝服务)。Dirty Frag是一个“确定性逻辑漏洞”(Deterministic Logic Bug),攻击不依赖精确的时间窗口,即使失败也不会引发内核崩溃,因此攻击成功率极高。
技术原理:链式攻击如何实现提权?
核心攻击链路
攻击的核心在于篡改内存中的文件数据,而非磁盘上的文件。通过将只读文件(如/usr/bin/su或/etc/passwd)的页面缓存页(Page Cache Page)利用splice()植入内核网络数据包(skb)的非线性frag区域,随后在接收端进行原地(In-Place)加解密操作时,对该页缓存实施写入,从而修改文件内容。
两个子漏洞的互补利用
1. xfrm-ESP漏洞(CVE-2026-43284):该漏洞源于IPsec ESP子系统。攻击者可利用用户命名空间(User Namespace)获取CAP_NET_ADMIN权限,通过构造特定的XFRM安全关联(SA),在ESP解密过程中对目标文件(如/usr/bin/su)的前192字节实现4字节精度的任意写入。通过多次循环操作,可将原本的/usr/bin/su替换为一个定制的root shellcode,从而在调用su时直接获得root shell 。
2. RxRPC漏洞(CVE-2026-43500):该漏洞源于RxRPC网络协议实现在rxkad_verify_packet_1()中的就地解密操作。不同于ESP漏洞,此路径不需要创建用户命名空间或特殊权限,普通用户即可触发。虽然写入的值不能完全任意指定(需通过暴力搜索会话密钥实现),但足以修改/etc/passwd文件,将root用户的密码字段清空,从而允许攻击者通过空密码登录root 。
攻击策略:在允许创建命名空间的环境(如多数服务器)中,攻击者优先使用ESP漏洞;在封禁命名空间但预加载了rxrpc.ko模块的环境(如部分Ubuntu配置)中,则自动切换至RxRPC漏洞。这种互补策略使得攻击面覆盖了绝大多数Linux系统 。
影响范围
该漏洞影响过去近9年的Linux内核版本(自2017年引入),波及绝大多数主流企业级发行版,包括但不限于 :
在容器化部署环境中,如果容器具有执行任意第三方负载的能力,该漏洞还可能被用于容器逃逸,威胁宿主机安全。但在采用默认seccomp配置的Kubernetes等强化容器环境中,实际利用难度相对较高 。
攻击现状
已发现有限度的在野利用
微软安全团队表示,目前已观察到与Dirty Frag(或关联的Copy Fail漏洞)相关的有限度实际攻击。攻击者在通过SSH等方式获得初始访问权限后,会部署并执行特定的ELF利用程序(如./update)以触发提权,随后进行横向移动、修改认证配置(如GLPI的LDAP设置)、访问敏感数据以及操纵PHP会话文件等操作 。
这标志着该漏洞不再是纯理论威胁,而是已进入实战阶段。鉴于PoC代码已在互联网上公开,强烈建议各级单位立即启动应急响应流程。
应急处置与加固建议
截至2026年5月12日,虽然CVE-2026-43284的补丁已合入Linux主线内核并被部分发行版(如Ubuntu、AlmaLinux)收录,但CVE-2026-43500(RxRPC)的官方补丁仍在开发中 。在无法立即升级内核的情况下,建议采取以下紧急措施:
1.临时缓解措施(在不重启或小范围重启下封堵攻击路径)
方案一:封禁漏洞相关内核模块(推荐,但不适用于使用IPsec VPN或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; echo 3 > /proc/sys/vm/drop_caches; true"
影响评估:此操作将导致IPsec/ESP隧道(VPN业务)及AFS分布式文件系统不可用。请务必在非生产环境或业务窗口期进行测试 。
方案二:禁用非特权用户命名空间
对于无法封禁内核模块,或主要以容器化业务为主的环境,可通过禁用用户命名空间来阻断ESP漏洞的攻击路径(但无法防御RxRPC漏洞):
sudo sysctl -w user.max_user_namespaces=0
echo "user.max_user_namespaces = 0" | sudo tee -a /etc/sysctl.conf
影响评估:将导致Rootless容器(如非特权Podman/Docker)、浏览器沙箱(如Chrome/Firefox)等依赖用户命名空间的功能失效 。
2.根本解决办法
关注各发行版安全公告:密切留意Red Hat、Ubuntu、SUSE、麒麟软件等厂商发布的安全更新通告。例如,SUSE已发布SUSE-SU-2026:1778-1更新,麒麟软件已在客户服务门户网站(https://support.kylinos.cn/#/security/sa)提供补丁检索 。
升级内核版本:一旦厂商发布包含CVE-2026-43284和CVE-2026-43500修复补丁的内核版本,应立即在测试环境中验证兼容性,并制定批量升级计划。
核查Copy Fail修补状态:鉴于CISA已将Copy Fail(CVE-2026-31431)列入已知被利用漏洞目录(KEV),且Dirty Frag与Copy Fail的技术原理相似,请确保系统已同步完成Copy Fail漏洞的修补,以防攻击者利用多种攻击路径 。
3.通用安全加固
最小权限原则:严格限制非运维人员的本地登录权限(SSH及物理终端)。禁止普通用户拥有CAP_NET_ADMIN等高危权能。
强化容器环境:对于Kubernetes等容器平台,确保启用严格的seccomp安全策略,默认禁止CAP_NET_ADMIN权限,并禁用非必要的user_namespace功能 。
加强监测:利用主机安全产品(如微软Defender、主机入侵检测系统等)监测异常的进程行为,特别是针对/usr/bin/su、/etc/passwd的异常访问以及unshare、splice系统调用的异常频率。
结语
Dirty Frag漏洞的曝光再次敲响了Linux系统安全的警钟。随着Linux在云计算、关键信息基础设施中的核心地位日益巩固,针对Linux内核的攻击技术也在快速演进。鉴于完整补丁尚未全面覆盖,立即采取临时缓解措施是最务实的选择。建议各企事业单位的网络安全部门参照本文提供的应急处置方案,在业务连续性与安全性之间审慎权衡,尽快落实防护策略。