CVE-2026-43284Linux内核中的xfrm: esp组件存在安全漏洞。因UDP数据报拼接路径未设置SKBFL_SHARED_FRAG标志,ESP输入路径将共享管道页面误认为普通非线性skb,导致在非私有数据上进行原位解密,可能引发内存损坏或权限提升。
该漏洞源于Linux内核网络子系统中对共享数据包缓冲区的处理不当。当使用MSG_SPLICE_PAGES将管道页面直接附加到skb时,TCP会正确标记SKBFL_SHARED_FRAG,但IPv4/IPv6的UDP路径缺失此标记。当处理ESP-in-UDP数据包时,如果这些数据包由共享管道页面构成,它们看起来像是未克隆的非线性skb。ESP输入代码会采用“无COW(写时复制)快速路径”,直接在原位解密数据。然而,由于这些页面是外部支持的共享页面,原位修改会破坏其他进程或内核结构的数据。攻击者利用此漏洞,通过构造特制的ESP-in-UDP数据包并利用splice机制,可在低权限下触发内核内存损坏,进而可能导致本地权限提升或系统崩溃。修复方案是在UDP拼接路径中添加SKBFL_SHARED_FRAG标志,并强制ESP输入在遇到该标志时回退到skb_cow_data()以确保数据私有化后再进行解密操作。