用于验证 Linux 系统是否易受 CVE-2026-31431(Copy Fail)漏洞影响的 Python 脚本,该漏洞是 Linux 内核中的一个本地权限提升漏洞。
自 2017 年(提交 72548b093ee3)起,内核加密模块 algif_aead 对就地操作的处理方式不正确。通过 splice(),非特权用户可以破坏 setuid 二进制文件的页缓存,从而获得 root 权限,无需接触磁盘。
| # | 检查项 |
|---|---|
| 1 | 内核版本(易受攻击的范围) |
| 2 | algif_aead 模块已加载或可加载 |
| 3 | AF_ALG SOCK_SEQPACKET 套接字无需特权即可访问 |
| 4 | os.splice() 可用(直接 Python 利用) |
| 5 | 所有用户可读的 setuid 二进制文件(sudo、passwd 等) |
| 6 | 已启用的防护措施(SELinux、AppArmor、modprobe 黑名单) |
python3 check_cve_2026_31431.py
无外部依赖。无需 root 权限即可运行。
此脚本仅分析系统。它不会利用漏洞,不会加载任何模块,也不会向磁盘写入任何内容。
echo 'install algif_aead /bin/false' | sudo tee /etc/modprobe.d/algif_aead-block.conf
此规避措施在 RHEL 发行版上不起作用(该模块已集成到内核中)。