- Dirty Frag - xfrm-ESP 共享片段被原地解密,导致文件页缓存被修改,可用于本地提权
- Dirty Frag 原始披露还包含 CVE-2026-43500 的 RxRPC 路径;两者有独立的根因与利用条件
- Dirty Frag 公开披露:2026-05-07;本 CVE 记录公开:2026-05-08
- 上游根因引入版本:Linux
4.11;公开利用还依赖具体协议与内核功能
- 严重性:CVSS 3.1
8.8 High(Linux CNA)
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
成因与利用条件
- IPv4/IPv6 datagram 路径引用外部页时未正确标记
SKBFL_SHARED_FRAG,ESP 接收路径因而可能跳过写时复制,在共享片段上进行原地密码处理
- 文件页缓存被当成私有网络缓冲区写入,可绕过普通文件写权限,进一步修改特权程序使用的内容
- 需要本地执行能力、可读目标文件,以及可用的 ESP/XFRM 功能;公开路径使用 ESP-in-UDP
- 配置 XFRM SA 需要目标网络命名空间中的
CAP_NET_ADMIN
- 允许创建非特权用户及网络命名空间时,普通用户可能在新命名空间中取得所需能力
- 已有相应能力的任务不依赖重新创建用户命名空间
- 影响首先发生在共享页缓存;不能因为磁盘文件未变化或 ESP 认证失败就排除风险
修复与缓解
| 上游分支 | 包含修复及必要回补修正的版本 |
|---|
| 5.10 | 5.10.255 |
| 5.15 | 5.15.206 |
| 6.1 | 6.1.172 |
| 6.6 | 6.6.138 |
| 6.12 | 6.12.87 |
| 6.18 | 6.18.28 |
| 7.0 | 7.0.5 |
| 主线正式版 | 7.1 |
5.15.205、6.1.171 已带初始回补,但错误地设置了 tx_flags 而不是 flags;后续 5.15.206、6.1.172 修正,不能只依据初始回补判断修复完整
- 修复在 datagram 路径标记共享片段,ESP 遇到共享片段时先执行写时复制
- 优先运行发行版提供的已修复内核;此表不覆盖所有厂商的内核回补版本
- 不使用 IPsec 时,使
esp4、esp6 真正不可用可阻断该协议路径,但会影响 IPsec/VPN
- 限制非特权用户命名空间可阻断普通用户取得相关能力的一条路径,不能覆盖已经拥有能力的任务
- 禁用 ESP 或用户命名空间不覆盖 RxRPC;本条补丁也不覆盖后续披露的 Fragnesia
PoC
- 原作者
V4bel/dirtyfrag 的 exp.c 同时包含本 CVE 的 ESP 路径和 CVE-2026-43500 的 RxRPC 路径
--force-esp 用于选择 ESP 路径;默认模式先尝试 ESP,未成功后可能回退 RxRPC
- 默认程序成功不能单独证明 ESP 路径可利用,需要核对实际使用的分支
- ESP 演示会修改
/usr/bin/su 的页缓存并继续尝试启动特权会话,不是只读探测
- 直观现象:网络协议处理改变了只读文件在后续执行时看到的内容,而不要求先有该文件的写权限