文章总结: 文档详细披露Linux内核高危漏洞CopyFail(CVE-2026-31431),该漏洞源于2017年algifaead模块的原地解密优化与splice系统调用异常交互,导致普通用户可篡改只读页缓存实现本地提权与容器逃逸,CVSS评分7.8。影响2017年后所有主流内核版本,利用门槛极低。提供官方内核补丁升级与临时禁用algifaead模块两种修复方案,并附一键自查加固脚本。 综合评分: 92 文章分类: 漏洞分析,应急响应,漏洞预警,解决方案,云安全
linux史诗级安全漏洞copyfail cve-2026-31431,及修复方案
原创
刘军军 刘军军
运维星火燎原
2026年5月3日 00:01 山西
在小说阅读器读本章
去阅读
一、漏洞核心(CopyFail,CVE-2026-31431)
- 漏洞名称:CopyFail(复制失败)
- CVE编号:CVE-2026-31431
- 漏洞类型:本地提权(LPE)+ 容器逃逸,逻辑漏洞
- CVSS3.1:7.8(高危)
- 成因:2017年内核优化引入,
algif_aead模块(AF_ALG加密接口)的原地(in-place)解密与splice系统调用异常交互,导致普通用户可篡改只读系统文件页缓存,提权root。 - 影响范围:2017年后所有主流内核(4.14+),含Ubuntu、RHEL、CentOS、SUSE、Debian、Amazon Linux等;容器/Pod可逃逸宿主机。
- 利用门槛:极低,732字节脚本即可提权,无竞态条件、无需复杂适配,成功率接近100%。
二、漏洞原理(极简说清)
- 正常逻辑:内核页缓存只读,普通用户不可写。
- 2017优化:
algif_aead解密路径改用原地操作(节省内存),将只读页缓存页加入可写输出链表。 - 漏洞触发:用户通过
AF_ALG套接字 + splice,向任意只读文件页缓存写入4字节,篡改/usr/bin/su等setuid程序,直接root提权。 - 容器逃逸:容器与宿主机共享页缓存,容器内可篡改宿主机页缓存,实现逃逸。
三、修复方案(优先级:官方补丁 > 临时缓解)
1. 官方永久修复(首选,必须重启)
内核补丁核心:回退2017年原地优化,恢复异地(out-of-place)操作,隔离只读/可写页。
修复版本(截至2026-05-02):
- 主线内核:6.18.22+、6.19.12+、7.0+
- Ubuntu 22.04:≥5.15.0-178;24.04:≥6.8.0-42
- RHEL/CentOS:≥6.12.0-124.46.1.el10_1
- SUSE:≥6.12.0-160000.10-default
升级命令:
# Ubuntu/Debian
sudo apt update && sudo apt full-upgrade -y
sudo reboot
# RHEL/CentOS
sudo dnf update kernel -y
sudo reboot
# SUSE
sudo zypper update kernel -y
sudo reboot
2. 临时缓解(无法重启/紧急防护,无需重启)
核心:禁用algif_aead模块(漏洞载体)
# 1. 禁止模块加载(永久生效)
echo "install algif_aead /bin/false" | sudotee /etc/modprobe.d/disable-algif-aead.conf
# 2. 卸载已加载模块(立即生效)
sudo rmmod algif_aead 2>/dev/null
# 3. 验证(无输出即成功)
lsmod | grep algif_aead
备选:seccomp拦截AF_ALG(容器环境)
配置seccomp策略,阻止用户态创建AF_ALG套接字,阻断攻击入口。
四、影响与风险提示
- 云原生高危:容器/K8s集群需优先修复,防止批量逃逸。
- 通用服务器:所有Linux主机(含物理机、虚拟机)均需修复,低权限用户可一键提权。
- 漏洞已公开:PoC/细节已泄露,立即修复/缓解,避免被入侵。
五、自查命令
# 1. 查内核版本
uname -r
# 2. 查模块是否加载
lsmod | grep algif_aead
# 3. 查kmod缓解(Ubuntu)
dpkg -l kmod
六、Linux CopyFail CVE-2026-31431 一键自查+加固脚本
直接复制到服务器 root 执行,适配 CentOS / Ubuntu / Debian / 麒麟 通用。
#!/bin/bash
# CVE-2026-31431 CopyFail 漏洞 自查+临时加固脚本
echo "=============================="
echo " CVE-2026-31431 CopyFail 加固"
echo "=============================="
# 1. 系统信息自查
echo -e "\n[1] 内核版本检测:"
uname -r
echo -e "\n[2] 检测漏洞模块 algif_aead 是否加载:"
lsmod | grep algif_aead
# 2. 永久禁止模块加载
echo -e "\n[3] 写入模块黑名单配置..."
cat > /etc/modprobe.d/disable-algif-aead.conf <<EOF
install algif_aead /bin/false
blacklist algif_aead
EOF
# 3. 卸载当前已加载模块
echo -e "\n[4] 卸载正在运行的 algif_aead 模块..."
rmmod algif_aead 2>/dev/null
echo "卸载完成(无报错即为正常)"
# 4. 再次校验
echo -e "\n[5] 加固后二次校验:"
lsmod | grep algif_aead
if [ -z "$(lsmod | grep algif_aead)" ]; then
echo "✅ 已成功禁用 algif_aead,临时防护生效"
else
echo "❌ 模块仍存在,需重启服务器"
fi
echo -e "\n=============================="
echo "临时加固完成!"
echo "根治方案:升级内核到官方修复版本并重启"
echo "=============================="
使用方法
- 新建文件:
vi copyfail_fix.sh - 把上面全部代码粘贴进去,保存退出
- 加权限:
chmod +x copyfail_fix.sh - 执行:
./copyfail_fix.sh
补充说明
- 脚本作用:不用重启,立刻阻断 CopyFail 漏洞利用入口;
- 只是临时缓解,彻底根治必须升级内核 +重启;
- 适配所有 Linux 发行版,包括国产麒麟、欧拉。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:运维星火燎原 刘军军 刘军军《linux史诗级安全漏洞copyfail cve-2026-31431,及修复方案》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。



![[技术深潜]潜伏9年的Copy-Fail:内核0-Day通杀Root](/images/random/titlepic/2.jpg)







评论