CVE-2026-31431,被亲切地称为“复制失败”,是一个自 2017 年以来一直潜伏在阴影中的关键 Linux 内核漏洞,现在终于得到了应有的安全关注。因为没有什么比一个八年前的漏洞更能体现“安全”了。

让我们用即使非 Linux 用户也能理解的方式来解释。想象一下,你电脑的内存是一块黑板,老师在上面实时记录你的成绩。学生不允许使用粉笔或板擦,所以他们无法作弊。“复制失败”就像一个狡猾的学生,不知怎么搞到了粉笔和板擦,趁你不注意时只改了自己的成绩。只不过在这种情况下,“成绩”是你系统的安全性。

本质上,“复制失败”是 Linux 内核中处理某些数据类型安全性的一个缺陷。只有基本系统访问权限的攻击者可以更改计算机 RAM 中的关键数据。一旦更改,被篡改的数据会欺骗系统,让系统认为攻击者是 root 用户,从而给予他们完全控制权。可以把它想象成一个清洁工拿走了老板的名牌,贴在自己储物间旁边的墙上,让所有人都以为他是老板。

与许多需要精确时序或复杂序列的 Linux 漏洞不同,“复制失败”出奇地直接。它滥用 AF_ALG 套接字接口和 splice() 系统调用,覆盖内核页面缓存中任何可读文件的仅 4 个字节。从那里,攻击者可以修改内存中的 setuid 二进制文件(如 su 命令)以获得 root 访问权限。无需依赖时序的重试;这是一个稳定、直接的漏洞。

“复制失败”影响从 4.14 到 6.19.12 的所有 Linux 内核版本。没错:从 2017 年到现在。为什么不把损害限制在几年内呢?

据 Xint Code 研究团队称,“这一发现是 AI 辅助的,但始于 Theori 研究员 Taeyang Lee 的洞察,他正在研究 Linux 加密子系统如何与页面缓存支持的数据交互。”所以,人类有了最初的想法,AI 帮助扩大了搜索范围。因为 AI 当然要参与其中。

修复方法很简单:将内核更新到最新版本。要检查你是否已打补丁,请运行以下命令:

```

l kmod grep -qE '^algif_aead ' /proc/modules && echo "受影响模块已加载" || echo "受影响模块未加载"

```

如果看到“受影响模块未加载”,你就安全了。如果看到“受影响模块已加载”,请更新系统。如果更新后仍然加载,请使用以下命令禁用 algif_aead 模块:

```

echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf

```

你现在对“复制失败”的了解足以保护自己。不客气。