5 月 1 日凌晨,编号 CVE-2026-31431 的 Linux 内核本地提权漏洞 PoC 按流程公开。漏洞名为 Copy Fail,影响 2017 年以来几乎所有 Linux 发行版——Ubuntu、Debian、RHEL、SUSE、Amazon Linux、Arch、Fedora 均在其中。CVSS 评分 7.8(高危),但实际危害远超分数:利用条件极低,仅需一个非特权本地用户,无需网络访问、无需内核调试特性;PoC 仅 732 字节 Python 代码,成功率接近 100%。用安全研究员 Xint 的话说——它不是条件竞争,而是一个直线逻辑漏洞,同一段 exploit 在所有发行版上无需修改即可拿到 root。
Copy Fail 技术报告:https://copy.fail/
漏洞出在内核加密 API 的 AF_ALG 子系统中:algif_aead 模块的 authencesn 操作存在逻辑缺陷,结合 splice() 系统调用可实现 4 字节的 page cache 越界写入。这个 bug 自 2017 年引入,一直潜伏至今。跟历史上同样著名的高危提权漏洞 Dirty COW(CVE-2016-5195,覆盖 2007-2016 年的内核)无缝衔接——2007-2016 用 Dirty COW,2017-2027 用 Copy Fail。Xint 研究员于 2026 年 3 月 23 日发现并报告,修复补丁 4 月 1 日并入 mainline(commit a664bf3d603d),PoC 按 90 天披露流程于 4 月 30 日公开。
高危场景包括:多租户 Linux 主机(VPS 母机上一个租户提权可横向影响其他租户)、共享托管服务器、容器环境(可逃逸至宿主机)、任何允许非特权 SSH 登录的 Linux 设备。AF_ALG 在几乎所有主流发行版中默认编译进内核,因此受影哝面极广。
临时缓解(即时生效,无需重启)
SSH 和 OpenSSL 等安全基础设施使用自行维护的用户态加密库,不依赖内核 AF_ALG,所以可以安全禁用:
# 立即卸载模块(可能失败如果模块正在使用,忽略错误)
rmmod algif_aead 2>/dev/null || true
# 阻止模块在启动时加载
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
验证是否生效:
lsmod | grep algif_aead # 应该无输出
注意:如果系统使用了 LUKS/dm-crypt 等依赖内核加密的组件,可能无法卸载模块——此时上述命令会静默失败,不影响系统运行,但缓解不完整。更新内核补丁是唯一根治方案。
根治方案
各发行版已陆续推出修复内核。确认当前版本:
uname -r
# 如果版本低于修复版本(4月1日后发布的更新),立即升级
- Ubuntu:
sudo apt update && sudo apt upgrade(跟踪 ubuntu.com/security/CVE-2026-31431) - Debian:
sudo apt update && sudo apt upgrade - RHEL/Rocky/Alma:
sudo dnf update kernel* - Amazon Linux:
sudo yum update kernel - CloudLinux:已发布补丁 kernel-6.12.0-124.45.1.el10_1 起
- Arch/Fedora/SUSE:滚动更新即可
升级后务必重启加载新内核:sudo reboot