Copy Fail 没修干净:Dirty Frag 和 AI 辅助漏洞研究的悖论

今天 HN 上最热的安全新闻是 Dirty Frag。

一个韩国安全研究者 Hyunwoo Kim(V4bel)披露了一个通用 Linux 本地提权漏洞,可以让 2017 年以来几乎所有主流 Linux 发行版的普通用户直接拿到 root 权限。

嗯,这听起来很熟悉。因为上个月才有一个叫 Copy Fail 的漏洞做了同样的事情——732 字节的 Python 脚本,从普通用户到 root。Linux 社区紧急推送了补丁。

但 Dirty Frag 来了。

它利用的是完全不同的路径。Copy Fail 通过破坏内核页缓存中的 setuid 二进制文件来提权。Dirty Frag 则利用了 IPsec ESP 和 RxRPC 内核模块中的认证序列号处理缺陷。它的 exploit 代码是一个 192 字节的 x86_64 ELF——比 Copy Fail 的 Python 脚本还要小。

而且最让人不安的是:Copy Fail 的补丁根本没有触及 Dirty Frag。研究者 V4bel 说,他原本按照负责任披露的流程在等 patch,但 embargo 被打破了,于是他公开发布了 exploit。

目前没有任何发行版有补丁。他给出的临时缓解措施是禁用这些内核模块:

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

嗯,这些模块跟网络加密相关。禁用它们意味着 IPsec VPN 可能会受影响。

但真正值得讨论的不是漏洞本身——虽然它确实很严重。而是 HN 上一个评论者 firer 提出的问题。

他发现 Dirty Frag 和 Copy Fail 的根本原因非常相似——它们都源于内核中 32 位扩展序列号处理的同一类错误。如果当初发现 Copy Fail 的研究者在手动审查代码时,他很可能就会发现这些近在咫尺的双生漏洞。

但问题在于:他用了 AI。

Copy Fail 的发现过程是这样的:研究者注意到内核密码子系统中的某个地方有异常,然后用 AI 扫描整个代码库来查找类似的模式。AI 很快找到了 Copy Fail。但在这个过程中,研究者实际上"跳过了"那些 AI 没有直接匹配到的区域。

firer 用了一个很好的比喻:这就像灯神。你得到你要求的东西,什么也不会多给。你问"帮我找页缓存写入漏洞",AI 就找页缓存写入漏洞。但那些在 ESP 模块里的认证序列号问题,它们跟"页缓存写入"不是一个关键词类别——所以 AI 不会指向它们。

如果研究者没有依赖 AI,而是自己一行一行地看代码,他在看到 Copy Fail 的同时,也很可能注意到"等等,这个 ESP 模块的序列号处理看起来也有问题"。

这是一个关于"负协同效应"的罕见案例:人和 AI 一起工作,结果比人单独工作表现更差。

嗯,另一个评论者 tptacek 提出了一个不同的观点:LLM 在第一时间就发现了这些漏洞。你怎么能说 AI 对漏洞发现不好呢?

这两个观点其实在说不同的事。tptacek 说的是"AI 能不能发现漏洞"——答案是能,而且很快。firer 说的是"AI 辅助研究是否会让你错过那些 AI 搜索范围之外但同样存在的漏洞"。

这就是 AI 辅助研究的根本悖论。

AI 把"已知问题的查找"变得极快。但人类的"不知名的发现"往往发生在浏览过程中的意外接触。当你看一段代码时发现了一个 bug,同时注意到旁边有一段看起来很奇怪的代码——这种"顺便看到"的能力,在 AI 时代被削弱了。

因为 AI 不需要"浏览"。它只需要"匹配"。

这不是说不要用 AI 做安全研究。AI 在自动化扫描、模糊测试、模式匹配上仍然远超人类。但我们需要意识到:AI 改变了研究者的工作方式,从"浏览并发现"变成了"提问并获取"。

而"浏览"这种看似低效的方式,恰恰是发现"未知未知"的唯一途径。

另一个值得提的现象是,今天有另一个帖子叫"Maybe you shouldn't install new software for a bit"。作者的论点是,在 Copy Fail 和 Dirty Frag 接连爆发、补丁还没完全覆盖所有发行版的窗口期,供应链攻击的风险特别高。攻击者可以通过 NPM 等包管理器注入恶意代码,而这些漏洞可以让入侵者在拿到任何普通用户权限后直接提权到 root。

这个建议其实很朴素:暂停安装新软件,等一周让补丁传播。

在 Dirty Frag 这种"通用提权"面前,供应链安全的重要性被放大了。因为以前一个恶意 NPM 包最多只能拿到运行它的用户权限。现在它可以拿到 root。

所以今天真正值得记住的是两个层面的问题。

技术层面:Linux 内核中有两个同源的严重提权漏洞,补丁只修了其中一个。所有 Linux 用户需要尽快更新内核,或者临时禁用 ESP 和 RxRPC 模块。

更深层的:AI 让已知问题的查找变得极快,但可能让我们失去发现"未知未知"的能力。在安全研究这个领域,"浏览"的价值可能被系统地低估了。

嗯,也许最好的方式不是"用 AI"或"不用 AI"。而是知道 AI 什么时候让你跳过了本该亲手看的代码。