“脏碎片”(CVE-2026-43284):八天内第二次 Linux Root 漏洞利用

2026-05-09 1 阅读 ggallas
“Dirty Frag”(CVE-2026-43284):八天内的第二次 Linux Root 漏洞利用 - 立即修补您的服务器 2026 年 5 月 9 日 作者:Gustavo Gallas 阅读时间:4 分钟 安全性 在复制失败震撼 Linux 服务器世界八天后,另一个严重漏洞已经到来 - 并且这个漏洞还将 root 访问权限授予任何可以在您的服务器上运行代码的人。它被称为“脏碎片”。该漏洞已于 2026 年 5 月 7 日公开披露。可利用的漏洞已经存在。如果您的服务器自 5 月 8 日以来尚未打补丁并重新启动,那么它现在很容易受到攻击。目录 什么是脏碎片? Dirty Frag 是一个链式漏洞利用的非正式名称,它结合了两个 Linux 内核漏洞:CVE-2026-43284 和 CVE-2026-43500。第一个已经打了补丁;截至撰写本文时,第二个仍在向发行版推出。 CVE-2026-43284 的根本原因在于 Linux 内核如何处理 IPsec/ESP 路径中的网络数据包内存。当 MSG_SPLICE_PAGES 将页面从管道直接附加到网络缓冲区 (skb) 时,IPv4/IPv6 数据报路径无法将这些页面标记为共享。这留下了一个由共享管道页面组成的 ESP-in-UDP 数据包,对内核来说就像一个普通的、私有的缓冲区——因此 ESP 解密将直接在 skb 不拥有的内存上就地进行。知道如何操纵此行为的攻击者可以实现对内核页面缓存的受控写入,并最终升级为 root。简而言之:内核信任它不应该信任的内存,攻击者可以利用这种错误的信任来接管整个机器。与之前的 DirtyPipe 漏洞不同,Dirty Frag 是一个确定性逻辑缺陷,该漏洞依赖于管道缓冲区标志处理中的狭窄竞争条件。研究员 Hyunwoo Kim 报告称,成功率非常高,内核恐慌风险极小,而且没有时间窗口可丢失。这使得它在漏洞利用过程中异常可靠。它如何连接到 Copy Fail 于 4 月 29 日披露的 Copy Fail (CVE-2026-31431) 利用了 Linux 内核加密子系统中的逻辑错误,特别是 authencesn AEAD 模板中的一个缺陷,该缺陷允许将受控的 4 字节写入内核页面缓存。一个 732 字节的 Python 脚本足以在 2017 年以来构建的每个主要 Linux 发行版上获得 root 权限。 Dirty Frag 遵循相同的基本模式——页面缓存写入原语变成 root 升级——但通过完全不同的代码路径。这两个漏洞都将长期存在的就地处理优化转化为确定性根原语:通过用户空间加密复制失败,通过 IPsec 接收进行脏碎片。这种联系并非偶然。研究员 Hyunwoo Kim 明确构建了 Copy Fail 引入的 bug 类。安全社区中的一些人已经开始将 CVE-2026-43284 称为“复制失败 2.0”。十天前被视为罕见的内核错误正在成为一种可重复的攻击。 Dirty Frag 的一个有趣之处在于,将两个子漏洞(CVE-2026-43284 和 CVE-2026-43500)链接起来可以覆盖彼此的盲点。这两个缺陷都单独为完全根升级提供了足够可靠的原语。然而,当组合起来时,链式利用可以在大多数发行版上立即获得根。谁受到影响?每台运行大约 2017 年以来构建的主流 Linux 内核的服务器都会受到影响。每个受支持的 AlmaLinux 版本都会受到影响。 CVE-2026-43284 通过 esp4 / esp6 模块影响 AlmaLinux 8、9 和 10,这些模块是每个版本的标准内核包的一部分。受影响发行版的完整列表包括 Red Hat Enterprise Linux、AlmaLinux、Debian、Ubuntu、Fedora、Arch Linux、CentOS、CloudLinux 和 Amazon Linux。特别是对于 Web 托管环境,威胁向量与复制失败相同:攻击者不需要远程入侵。危险在于,一旦攻击者通过易受攻击的 WordPress 插件、Web shell、弱 SSH 凭据或受损的容器进入,Dirty Frag 就会让他们立即升级到 root,然后禁用安全工具、读取凭据、篡改日志、横向移动或保留在服务器上。在共享托管服务器上,单个被盗帐户可能会导致整个服务器被盗。修复 — 一步一步 第 1 步:更新内核 自 2026 年 5 月 8 日起,已修补的内核现已在生产存储库中提供。这是唯一真正的修复。对于 AlmaLinux、CloudLinux、Rocky Linux、CentOS Stream、RHEL: sudo dnf cleanmetadata && sudo dnf update sudo restart 对于 Debian / Ubuntu: sudo apt update && sudo apt update sudo restart 对于带有 KernelCare 的 CloudLinux(无需重新启动): kcarectl --update 重新启动后,确认您正在运行已修补的内核: uname -r 将输出与发行版安全公告中的已修补版本进行比较在考虑服务器保护之前。步骤 2:临时缓解措施(如果您无法立即重新启动) 如果无法立即重新启动,您可以阻止该漏洞