Dirty Frag 漏洞曝光,全网 Linux 服务器都在裸奔!
你的 Linux 服务器还好吗?
今天凌晨,安全研究员 Hyunwoo Kim 在 oss-security 邮件列表扔了个核弹。
一个名叫"Dirty Frag"的漏洞,可以让任何普通用户直接提权到 root 。
所有主流 Linux 发行版,全中招。
Hacker News 上 673 个赞、 276 条评论炸了。
开发者们都在问:我的服务器还安全吗???
这次有多严重?
Universal LPE(本地权限提升)。
翻译一下就是:只要能登录你的 Linux 系统,不管是什么发行版,不管是什么内核版本,都能直接拿到 root 权限。
Ubuntu?中招。
Debian?中招。
RHEL?中招。
Arch?也中招。
没有例外。
更骚的是,这个漏洞的利用代码已经公开了。
完整的 C 代码,复制粘贴编译就能用。
192 字节的 ELF 文件,直接把/usr/bin/su 改成 root shell 。
为什么现在才爆出来?
因为 embargo(禁令)被打破了。
原本这个漏洞应该走 responsible disclosure 流程:
但是这次出了问题。
禁令被打破,补丁还没准备好,漏洞就被迫公开了。
所以现在的情况是:
这就是最糟糕的情况。
技术细节:两个漏洞的完美组合
Dirty Frag 不是一个漏洞,而是两个漏洞的链式利用。
第一个漏洞:ESP4/ESP6 模块的内存破坏
Linux 内核的 IPsec 实现(esp4 和 esp6 模块)在处理分片数据包时,存在 use-after-free 漏洞。
攻击者可以通过构造特殊的 UDP 封装 ESP 数据包,触发内核内存破坏。
第二个漏洞:RXRPC 模块的权限绕过
RXRPC 模块在处理某些特定场景时,可以被利用来绕过权限检查。
两个漏洞组合起来,就能实现任意文件写入。
攻击者的思路很简单:
4.把 su 改成一个 192 字节的 root shell
整个过程不到 1 秒。
临时缓解方案
官方补丁还没出,但研究员给了个临时方案:
禁用有问题的内核模块。
运行这个命令:
sh-c"printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; true"
这个命令做了两件事:
1.在 modprobe 配置里禁用 esp4 、 esp6 、 rxrpc 模块
但是这只是临时方案。
如果你的系统需要 IPsec 或者 RXRPC 功能,禁用这些模块会导致功能失效。
HN 网友怎么说?
评论区已经炸了:
"这和之前的 Copy Fail 漏洞太像了,都是链式利用内核模块的漏洞。"
"为什么 authencesn 模块一直没修?现在又出了新的利用方式。"
"如果这真的影响所有主流发行版,我只能说维护者太不负责任了。我们说的可是可选的内核功能,大部分用户根本不需要。"
"embargo 被打破,没有补丁就公开,这是最糟糕的情况。"
有人贴出了内核补丁的链接,显示 7.0 、 6.18 、 6.12 、 6.6 内核的修复已经推送了。
但是其他版本呢?
大部分生产环境的服务器,还在用更老的内核。
这不是第一次了
Hyunwoo Kim 在报告里提到,这个漏洞和之前的 Copy Fail 漏洞有类似的影响。
Copy Fail 也是一个 Universal LPE,也是链式利用内核模块漏洞。
但是 Copy Fail 的根本原因并没有被完全修复。
所以现在又出现了 Dirty Frag 。
这说明什么?
Linux 内核的某些模块,在设计上就存在问题。
不是某个具体的 bug,而是整个架构的问题。
修了一个漏洞,还会出现下一个。
你应该怎么办?
如果你是服务器管理员:
如果你是开发者:
如果你是普通用户:
最后
这次事件再次证明了一个道理:
没有绝对安全的系统。
Linux 内核有几千万行代码,每一行都可能是潜在的漏洞。
Dirty Frag 不是第一个 Universal LPE,也不会是最后一个。
我们能做的,就是尽快打补丁,尽量减少攻击面。
但是当 embargo 被打破,补丁还没准备好的时候,我们只能祈祷攻击者动作慢一点。
你的服务器,今天打补丁了吗?
参考链接:
- Dirty Frag 官方报告: https://dirtyfrag.io
- oss-security 邮件列表: https://www.openwall.com/lists/oss-security/2026/05/07/8
- 内核补丁: https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=f4c50a4034e62ab75f1d5cdd191dd5f9c77fdff4
声明: 本文仅供安全研究和防御参考,请勿用于非法用途。