Linux 内核 DirtyClone 爆雷|不留任何日志的本地提权,直接改写 /usr/bin/su 拿 root
一句话总结
Linux 内核 DirtyClone(CVE-2026-43503)让本地用户提权到 root,攻击不留任何日志。立即升级到 7.1-rc5 或更高。
Linux 内核 DirtyClone 爆雷|不留任何日志的本地提权,直接改写 /usr/bin/su 拿 root
JFrog Security Research 于 6 月 26 日公开拆解 Linux 内核高危漏洞 DirtyClone(CVE-2026-43503)——CVSS 8.8,攻击面命中 Debian、Ubuntu、Fedora 三大主流发行版,任何拿到本地 shell 的低权限用户都可以提权到 root,而且 不留 kernel log、不留 audit 记录。漏洞同时被 JFrog(5 月 19 日)与 Hyunwoo Kim(5 月 16 日上游报告)独立发现,补丁 5 月 21 日合入主线(commit 48f6a5356a33),首个修复版本是 Linux v7.1-rc5。
技术根因藏在 skb(socket buffer)的一个元数据 flag 里。漏洞函数 `__pskb_copy_fclone()` 在克隆网络包时丢掉了 `SKBFL_SHARED_FRAG` 标记——这个 flag 原本是上一轮 DirtyFrag 漏洞修复时引入的安全闸门,作用是告诉 IPsec 子系统「这个缓冲区指向 file-backed 内存,请走 copy-on-write 别原地改」。flag 一丢,IPsec 的 `esp_input` 在做就地解密时,会把 page cache 里的文件数据当网络包覆盖掉——同一块物理内存页同时被当文件、又被当网络包用。
攻击链非常简洁。攻击者控制 IPsec 的 IV 与 key,等于控制了往 page cache 写入的字节——目标选 `/usr/bin/su`,patch 一小段指令序列绕过认证,从此本地任何用户 `su` 一下就是 root。整条链不触发任何传统内核漏洞检测:没有 oops、没有 kallsyms 读取、没有 kptr_restrict 绕过,连审计子系统都看不到痕迹——因为攻击发生在 网络包解密路径 上,数据流完全合法。
利用前提的门槛同样低。攻击者只需要 CAP_NET_ADMIN 能力,而这个能力在 启用 unprivileged user namespaces 的发行版上,任何本地用户都能通过 namespace 自助拿到。Debian 与 Fedora 默认开启,默认易受攻击;Ubuntu 24.04+ 因为 AppArmor 限制 unprivileged userns 算 部分缓解——但「部分」两个字在生产环境不够用。
JFrog 原话:「同一块物理内存页同时被当作文件数据(page cache)与网络包数据(skb)使用」——这是 DirtyCow(2016)以来,page cache 与 内核网络 / 加密子系统 第二次在同一个 race 上撞车。DirtyFrag、DirtyPipe、DirtyCred、DirtyCOW、现在 DirtyClone——「Dirty 家族」近十年第五个利用 page cache 与内核子系统共享内存做提权的漏洞。
行动指令:
- 内核立即升 v7.1-rc5 及以上,或拉发行版的反向移植补丁
- 暂时不能升内核的,`sysctl -w kernel.unprivileged_userns_clone=0` 关 unprivileged user namespaces
- 不用 IPsec 的机器,`modprobe -r esp4 esp6 rxrpc` 或加入黑名单
- 容器密集场景(k8s、docker host)优先级拉满——unprivileged userns 是云原生的默认假设,这次直接被打穿
PoC 目前 JFrog 内部已验证、未公开——但补丁早已合入主线一个月,攻击代码从 git diff 反推不困难。下半年大概率出现公开 exploit。
via JFrog Research / The Hacker News / Cybersecurity News / Linuxiac / Red Secure Tech
JFrog Security Research 于 6 月 26 日公开拆解 Linux 内核高危漏洞 DirtyClone(CVE-2026-43503)——CVSS 8.8,攻击面命中 Debian、Ubuntu、Fedora 三大主流发行版,任何拿到本地 shell 的低权限用户都可以提权到 root,而且 不留 kernel log、不留 audit 记录。漏洞同时被 JFrog(5 月 19 日)与 Hyunwoo Kim(5 月 16 日上游报告)独立发现,补丁 5 月 21 日合入主线(commit 48f6a5356a33),首个修复版本是 Linux v7.1-rc5。
技术根因藏在 skb(socket buffer)的一个元数据 flag 里。漏洞函数 `__pskb_copy_fclone()` 在克隆网络包时丢掉了 `SKBFL_SHARED_FRAG` 标记——这个 flag 原本是上一轮 DirtyFrag 漏洞修复时引入的安全闸门,作用是告诉 IPsec 子系统「这个缓冲区指向 file-backed 内存,请走 copy-on-write 别原地改」。flag 一丢,IPsec 的 `esp_input` 在做就地解密时,会把 page cache 里的文件数据当网络包覆盖掉——同一块物理内存页同时被当文件、又被当网络包用。
攻击链非常简洁。攻击者控制 IPsec 的 IV 与 key,等于控制了往 page cache 写入的字节——目标选 `/usr/bin/su`,patch 一小段指令序列绕过认证,从此本地任何用户 `su` 一下就是 root。整条链不触发任何传统内核漏洞检测:没有 oops、没有 kallsyms 读取、没有 kptr_restrict 绕过,连审计子系统都看不到痕迹——因为攻击发生在 网络包解密路径 上,数据流完全合法。
利用前提的门槛同样低。攻击者只需要 CAP_NET_ADMIN 能力,而这个能力在 启用 unprivileged user namespaces 的发行版上,任何本地用户都能通过 namespace 自助拿到。Debian 与 Fedora 默认开启,默认易受攻击;Ubuntu 24.04+ 因为 AppArmor 限制 unprivileged userns 算 部分缓解——但「部分」两个字在生产环境不够用。
JFrog 原话:「同一块物理内存页同时被当作文件数据(page cache)与网络包数据(skb)使用」——这是 DirtyCow(2016)以来,page cache 与 内核网络 / 加密子系统 第二次在同一个 race 上撞车。DirtyFrag、DirtyPipe、DirtyCred、DirtyCOW、现在 DirtyClone——「Dirty 家族」近十年第五个利用 page cache 与内核子系统共享内存做提权的漏洞。
行动指令:
- 内核立即升 v7.1-rc5 及以上,或拉发行版的反向移植补丁
- 暂时不能升内核的,`sysctl -w kernel.unprivileged_userns_clone=0` 关 unprivileged user namespaces
- 不用 IPsec 的机器,`modprobe -r esp4 esp6 rxrpc` 或加入黑名单
- 容器密集场景(k8s、docker host)优先级拉满——unprivileged userns 是云原生的默认假设,这次直接被打穿
PoC 目前 JFrog 内部已验证、未公开——但补丁早已合入主线一个月,攻击代码从 git diff 反推不困难。下半年大概率出现公开 exploit。
via JFrog Research / The Hacker News / Cybersecurity News / Linuxiac / Red Secure Tech
