漏洞原理:
在 Linux 内核的 IPsec ESP 输入路径中,当处理来自 UDP 封装的 ESP(ESP-in-UDP)数据包时,若数据包页面片段通过 MSG_SPLICE_PAGES、splice(2) 或 sendfile(2) 等方式从管道(pipe)直接附加到 socket buffer(skb),内核会将此类 skb 标记为 SKBFL_SHARED_FRAG,以便后续可能修改数据包内容的代码路径先执行私有拷贝(COW)。
然而,IPv4/IPv6 数据包追加路径在为 UDP skb 拼接页面片段时,未正确设置 SKBFL_SHARED_FRAG 标志。这使得 ESP 输入处理程序将包含外部 pipe 页面的 skb 误判为普通的、非克隆的线性 skb,从而直接在外部页面(非内核私有持有)上执行原地解密(in-place decrypt)。
恶意攻击者可通过精心构造的管道页面布局,在 ESP 解密阶段篡改或暴露敏感页面缓存(page-cache)数据,例如 /etc/passwd 等关键系统文件,最终实现本地权限提升至 root。
受影响内核版本:该漏洞自 Linux 4.11 起引入,所有未打补丁的 4.11 及以上版本内核均受影响。
漏洞原理:
CVE-2026-43500 是 Dirty Frag 漏洞家族的另一半,位于内核的 rxrpc(Remote Procedure Call over RX)模块中。该漏洞与 CVE-2026-43284 共享相同的根本成因:RxRPC 的接收路径同样存在对共享 skb 片段进行原地解密/写入的操作,当 skb 页面片段来自外部引用(如 pipe 页面)时,内核错误地直接修改了非私有数据,导致页面缓存污染和权限提升。
与 CVE-2026-43284 不同的是,CVE-2026-43500 主要影响启用了 rxrpc 内核模块的系统。该模块通常在部分发行版的 kernel-modules-extra 或 kernel-modules-partner 包中提供。
对于CVE-2026-43284,可以用cat /etc/os-release查看内核版本,NingOS V3 1.0版本内核的NingOS不涉及此漏洞