通用Linux内核本地权限提升
| 字段 | 详情 |
|---|---|
| CVE | CVE-2026-43284 (xfrm/ESP) + CVE-2026-43500 (RxRPC) |
| 昵称 | 脏片段 |
| CVSS | 7.8 高 |
| 类型 | 本地权限提升 (LPE) |
| 引入时间 | Linux内核 4.10 (2017年,提交 cac2661c53f3) |
| 修复时间 | 主线提交 f4c50a4034e6 / aa54b1d27fe0 |
| 所需条件 | 本地无特权 shell 访问 |
| 远程向量 | 无 — 仅本地 |
| 披露时间 | 2026年5月7日,由 Hyunwoo Kim (@v4bel) |
Linux内核 xfrm/ESP 和 RxRPC 子系统中的逻辑缺陷允许无特权的本地用户对系统上任何可读文件的页缓存执行确定性、受控的任意写入——包括setuid二进制文件(如 /usr/bin/su)。
根本原因是共享套接字缓冲区(skb)片段的不安全原地解密,这些片段引用了页缓存页,特别是在使用 splice(2) 或 sendfile(2) 时。这提供了一个强大的任意页缓存写入原语,可用于覆盖内存中的敏感文件,从而获得完全 root 访问权限。
通过链接两种不同的原语实现通用覆盖:
xfrm-ESP 页缓存写入:与Copy Fail共享相同的接收端,但通过 esp4/esp6 模块触发,无论 algif_aead 是否可用。需要创建命名空间的权限。RxRPC 页缓存写入:不需要命名空间权限,但必须存在 rxrpc.ko(Ubuntu默认加载)。覆盖了 CVE-2026-43284 的盲点。链接这两种变体可以相互覆盖对方的盲点,从而在每一个主要发行版上实现可靠的 root 权限。
无需竞争条件。无需重试。无崩溃风险。在所有测试过的发行版上均可确定性执行。
重要提示: 即使系统应用了公开已知的Copy Fail缓解措施(algif_aead黑名单),Dirty Frag仍然可以通过 CVE-2026-43284 被利用。
algif_aead 黑名单(Copy Fail的变通方案)CVE-2026-43284 (xfrm/ESP): 从提交 cac2661c53f3(2017-01-17)到 f4c50a4034e6(2026-05-05)之间的Linux内核。
CVE-2026-43500 (RxRPC): 从提交 2dc334f1a63a(2023-06-08)到 aa54b1d27fe0(2026-05-10)之间的Linux内核。
该漏洞链的有效生命周期约为 9年。
所有在此范围内搭载内核的主要发行版均受影响,包括:
gcc -O0 -Wall -o exp exp.c -lutil && ./exp
请勿在未经授权的系统上使用。
⚠️ 重要提示: 运行此漏洞利用后,页缓存已被污染。要清除被污染的页缓存并确保系统稳定,请运行:
echo 3 > /proc/sys/vm/drop_caches
或重启系统。
更新到包含主线修复的内核并重启。
主线修复版本:
f4c50a4034e62ab75f1d5cdd191dd5f9c77fdff4aa54b1d27fe0c2b78e664a34fd0fdf7cd1960d71# Ubuntu / Debian
sudo apt update && sudo apt upgrade -y && sudo reboot
# RHEL / AlmaLinux / CentOS Stream
sudo dnf clean metadata && sudo dnf upgrade && sudo reboot
# SUSE / openSUSE
sudo zypper refresh && sudo zypper update kernel-default && sudo reboot
# Fedora
sudo dnf upgrade --refresh && sudo reboot
如果无法立即打补丁,请禁用漏洞模块并清除页缓存。
# 黑名单漏洞模块
sudo sh -c 'printf "install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n" > /etc/modprobe.d/dirtyfrag.conf'
# 立即卸载模块
sudo rmmod esp4 esp6 rxrpc 2>/dev/null || true
# 清除页缓存
echo 3 | sudo tee /proc/sys/vm/drop_caches >/dev/null
对于不可信的工作负载(容器、CI运行器、沙箱环境),无论补丁状态如何,通过 seccomp 或 AppArmor 策略限制 AF_ALG 套接字创建和 splice() 系统调用。这可以在易受攻击的内核上限制攻击面,但并非完整的修复。
检查当前是否加载或使用了漏洞模块:
# 检查模块是否已加载
lsmod | grep -E 'esp4|esp6|rxrpc'
# 检查是否有进程打开了AF_ALG套接字
lsof | grep AF_ALG
ss -xa | grep alg
# 重启后确认变通方案是否生效
cat /etc/modprobe.d/dirtyfrag.conf
为什么要链式利用两个漏洞?
xfrm-ESP 页缓存写入 提供了强大的任意4字节STORE原语,存在于大多数发行版中,但需要创建命名空间的权限——Ubuntu有时会通过AppArmor阻止。RxRPC 页缓存写入 不需要命名空间权限,但 rxrpc.ko 并未包含在大多数发行版中——Ubuntu除外,默认加载。链式利用这两个漏洞可以让它们的盲点相互覆盖,从而在每一个主要发行版上实现可靠的 root 权限。
与 Copy Fail (CVE-2026-31431) 的关系是什么?
xfrm-ESP 原语与 CVE-2026-31431 共享相同的页缓存写入接收端,但通过 esp4/esp6 模块独立于 algif_aead 触发。应用 CVE-2026-31431 的缓解措施(将 algif_aead 列入黑名单)无法防御 Dirty Frag。
为什么叫“脏片段”?
该漏洞污染了 struct sk_buff 的 frag 成员,将其置于与 Dirty Pipe 相同的漏洞类别中——即允许无特权写入页缓存的逻辑缺陷。
本仓库仅用于教育和防御性安全目的。请不要将本仓库中的任何信息或代码用于您不拥有或未经明确书面授权测试的系统。
保持安全。尽早打补丁。经常打补丁。祝黑客愉快 🛡️
| Dirty Cow (2016) | Dirty Pipe (2022) | Copy Fail (2026) | Dirty Frag (2026) |
|---|
| 需要竞争条件 | 是 | 部分 | 否 | 否 |
| 版本特定 | 是 | 是 | 否 | 否 |
| 可靠性 | 不稳定 | 中等 | 确定性 | 确定性 |
| 发行版覆盖 | 有限 | 有限 | 自2017年以来全部 | 自2017年以来全部 |
| 绕过Copy Fail缓解 | — | — | 不适用 | 是 |
| 发行版 | 测试版本 | 状态 |
|---|
| Ubuntu 24.04.4 | 6.17.0-23-generic | 受影响 — 补丁正在推送 |
| RHEL 10.1 | 6.12.0-124.49.1.el10_1.x86_64 | 受影响 — 补丁正在推送 |
| AlmaLinux 10 | 6.12.0-124.52.3.el10_1.x86_64 | 受影响 — 补丁可用 |
| CentOS Stream 10 | 6.12.0-224.el10.x86_64 | 受影响 — 补丁正在推送 |
| Fedora 44 | 6.19.14-300.fc44.x86_64 | 受影响 — 补丁可用 |
| openSUSE Tumbleweed | 7.0.2-1-default | 受影响 — 进行中 |
| Debian | — | 受影响 — 进行中 |
| 组件 | 影响 |
|---|
| SSH | ✅ 不受影响 |
| dm-crypt / LUKS | ✅ 不受影响 |
| kTLS / 内核中TLS | ✅ 不受影响 |
| OpenSSL / GnuTLS / NSS(默认构建) | ✅ 不受影响 |
| IPsec / XFRM(ESP隧道、VPN) | ⚠️ 中断 — esp4 和 esp6 将不可用 |
| 使用RxRPC的AFS / OpenAFS客户端 | ⚠️ 中断 — rxrpc 将不可用 |
直接使用 AF_ALG + AEAD 的应用程序 | ⚠️ 使用 `lsof |
| 资源 | 链接 |
|---|
| CVE-2026-43284 主线修复 | f4c50a4034e6 |
| CVE-2026-43500 主线修复 | aa54b1d27fe0 |
| NVD — CVE-2026-43284 | https://nvd.nist.gov/vuln/detail/CVE-2026-43284 |
| NVD — CVE-2026-43500 | https://nvd.nist.gov/vuln/detail/CVE-2026-43500 |
| 日期 | 事件 |
|---|
| 2017-01-17 | CVE-2026-43284 漏洞引入 (cac2661c53f3) |
| 2023-06-08 | CVE-2026-43500 漏洞引入 (2dc334f1a63a) |
| 2026-05-05 | CVE-2026-43284 在主线中修复 (f4c50a4034e6) |
| 2026-05-07 | 公开披露 |
| 2026-05-10 | CVE-2026-43500 在主线中修复 (aa54b1d27fe0) |
| 2026-05-10+ | 各发行版开始推送补丁 |