News

Linux内核“Dirty Frag”漏洞链曝光:两周内第二起严重提权威胁

Linux内核“Dirty Frag”漏洞链曝光:两周内第二起严重提权威胁

Linux内核近期曝出两项新的提权漏洞,编号分别为CVE-2026-43284和CVE-2026-43500。这两个漏洞都源于内核处理内存中页缓存的缺陷,允许非受信用户修改这些缓存。它们主要针对内核网络和内存碎片处理组件中的缓存。具体来说,CVE-2026-43284影响esp4esp6进程,而CVE-2026-43500则针对rxrpc。这些漏洞与去年的“CopyFail”以及2022年的“Dirty Pipe”等利用页缓存缺陷的攻击属于同一家族。

安全公司Automox的研究人员将这组漏洞命名为“Dirty Frag”。它与“Dirty Pipe”和“Copy Fail”同源,但攻击目标是内核struct sk_buff结构中的frag成员,而非pipe_buffer。该漏洞通过splice()系统调用,将一个只读的页缓存页面(如/etc/passwd/usr/bin/su)的引用植入到发送端skbfrag槽位。随后,接收端内核代码对该frag执行原地加密操作,从而修改了内存中的页缓存。攻击者即便只有文件读取权限,之后对该文件的任何读取都会看到被篡改后的内容。

CVE-2026-43284漏洞存在于IPsec ESP接收路径上的esp_input()进程中。当一个skb对象是非线性的但缺少frag列表时,内核代码会跳过skb_cow_data()函数,并直接在已植入的frag上进行AEAD解密。通过这种方式,攻击者可以控制文件偏移量以及每次存储的4字节值。

另一方面,CVE-2026-43500漏洞位于rxkad_verify_packet_1()函数中。该过程使用单块方式解密RxRPC负载。通过splice固定的页在此处同时作为源和目标。此外,利用add_key (rxrpc)可以自由提取解密密钥,这些因素共同使得攻击者能够在内存中重写内容。

值得注意的是,单独使用任一漏洞都不可靠。例如,某些Ubuntu配置会使用AppArmor来阻止非受信用户创建命名空间内容,从而削弱了ESP攻击技术。而大多数其他Linux发行版默认不运行rxrpc.ko模块,这使得RxRPC攻击无法生效。然而,当这两个漏洞被串联(chained)使用时,攻击者便能够在Kim测试过的所有主流发行版上获取Root权限。一旦漏洞成功利用,攻击者可以进一步利用SSH访问、Web Shell执行、容器逃逸或入侵低权限账户。

微软研究人员指出:“‘Dirty Frag’之所以引人注目,是因为它引入了涉及rxrpcesp/xfrm网络组件的多个内核攻击路径,显著提高了漏洞利用的可靠性。相较于通常依赖狭窄时间窗口或不稳定破坏条件的Linux本地提权漏洞,‘Dirty Frag’似乎旨在提高在不同易受攻击环境中的一致性。”

谷歌旗下安全公司Wiz的研究人员表示,在默认安全设置强化的容器化环境(如Kubernetes)中,这些漏洞的逃逸成功率会降低。不过,他们也强调了潜在风险依然存在。

↗ 阅读原文