你的 Linux 电脑可能一直埋着一颗雷。攻击者只需几行代码,就能从普通用户变身超级管理员——不需要复杂技巧,不需要碰运气,100% 稳定复现。
就在最近,安全社区披露了一个在 Linux 内核中潜伏了近 9 年的高危漏洞:CVE-2026-31431,CVSS 评分 7.8(高危)。研究者给它起了个形象的名字——"Copy Fail"(复制失败)。
这个漏洞的可怕之处在于:利用门槛极低。概念验证代码只有 732 字节,不到 1KB 的 Python 脚本,不需要复杂的内存操控,不需要猜解偏移量,不需要等"时机窗口"。只要你能在系统上执行代码,这个漏洞就能 100% 帮你拿下 root 权限。
打个比方:这像是有人发现你家大门上有个隐藏的暗门,平时看起来完全正常,但只要知道机关在哪里,用手指轻轻一按就能直接进入。这种"确定性"的漏洞,在安全圈里非常罕见。

漏洞原理:一个"好心办坏事"的优化
要理解这个漏洞,得先聊点 Linux 内核的背景知识。
2017 年,Linux 内核的加密子系统引入了一项"原地加解密"优化。简单说,就是让数据在内存中原地处理,减少复制操作来提升性能。这个优化看起来很美好,却忽略了一个致命问题:数据来源可能是只读的内存页面。
打个不太准确但好理解的比喻:图书馆的书只能阅读不能涂改,但系统错误地认为你可以直接修改书页内容。攻击者正是利用了这个"误会",把魔爪伸向了系统关键的程序文件。
具体来说,当内核在处理加密操作时,如果发现源数据和目标数据指向同一块内存,就会跳过复制步骤直接处理。但问题在于,这块内存可能是只读的——比如映射了系统二进制文件的页面。攻击者精心构造的写入操作,就能绕过只读保护,直接修改系统关键文件。
⚠️ 影响范围: 所有使用受影响内核版本的 Linux 系统,包括服务器、桌面、嵌入式设备。Ubuntu、Debian、CentOS、RHEL、Arch 等主流发行版均在列。

为什么 9 年都没被发现?
说实话,这事儿不奇怪。安全研究中有个规律:越"优雅"的代码,越容易藏着深层的逻辑漏洞。
原地加解密优化本身是一个非常合理的性能改进。代码逻辑看起来完全正常——"如果源和目标一样,就不用复制了"。这个判断在 99.99% 的情况下都是对的。问题就出在那 0.01%:没有人想过,用户可能会故意让源和目标指向同一块只读内存。
这种漏洞属于"逻辑漏洞",不是传统的缓冲区溢出或 use-after-free。它不触发任何内存安全检查,不产生崩溃日志,不留下明显的异常痕迹。从外表看,一切都在正常工作——只是悄悄地,只读页面被改写了。
这也是为什么这类漏洞往往潜伏多年。传统的 fuzz 测试和静态分析工具很难覆盖到这种"合法但危险"的代码路径。
作为普通用户,你需要做什么?
好消息是,主流发行版已经在推送修复了。如果你用的是 Ubuntu、Debian、Fedora 等,现在就可以更新。
第一步:检查你的内核版本
# Ubuntu / Debian
uname -r
# 如果低于发行版对应的安全版本,需要升级
# 查看已安装的内核包
dpkg -l | grep linux-generic
第二步:升级内核
# Ubuntu / Debian
sudo apt update
sudo apt install linux-generic*
# Fedora / RHEL / CentOS
sudo dnf update kernel
# Arch Linux
sudo pacman -Syu linux
第三步:重启系统
内核更新必须重启才能生效。
sudo reboot
第四步:验证
uname -r
# 确认新版本已生效
💡 服务器用户注意: 如果你管理的是生产服务器,建议在维护窗口安排重启。如果暂时无法重启,可以考虑使用 livepatch(Ubuntu Pro 支持)在不重启的情况下应用内核安全补丁。

写在最后:Linux 安全,没有"与我无关"
很多人觉得"我用的是 Linux,很安全"。这话对了一半。Linux 确实在设计上比很多系统更安全,但安全不是默认的,是需要维护的。
一个 9 年未被发现的漏洞告诉我们:再优秀的代码也可能有盲区。保持系统更新,不是一种"可选操作",而是安全的基本功。
对于个人用户,开启自动安全更新就够了。对于服务器管理员,建议订阅你所用发行版的安全通告邮件列表,第一时间获知漏洞信息。
安全这件事,最怕的不是有漏洞,而是知道有漏洞却不修。
三页札记 | 每天三分钟,看懂这个世界