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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-31431 — Linux 本地权限提升漏洞利用程序,针对 CVE-2026-31431,滥用 AF_ALG 加密 API 配合 splice() 修改页缓存并生成 root shell。 | Kitploit
工具/GitHubGitHub/vyahello/cve-2026-31431
权限提升漏洞利用框架漏洞分析漏洞利用渗透测试二进制利用
GitHubvyahello/cve-2026-31431

CVE-2026-31431

Linux 本地权限提升漏洞利用程序,针对 CVE-2026-31431,滥用 AF_ALG 加密 API 配合 splice() 修改页缓存并生成 root shell。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Copy Fail - CVE-2026-31431

本仓库包含针对 CVE-2026-31431(又称 "Copy Fail")的一个小型 Linux 本地权限提升 PoC。

该漏洞利用针对 Linux 内核 AF_ALG 用户态加密 API 中的 algif_aead 路径。它使用 AF_ALG 加 splice() 强制内核以 4 字节块的形式写入 /usr/bin/su 的页缓存,然后在页缓存被修改后执行 su。

源代码概览

copy_fail_exp.py 中的 PoC 做了四件事:

  1. 打开一个 AF_ALG 套接字,用于 aead,变换为 authencesn(hmac(sha256),cbc(aes))。
  2. 使用与原始概念验证中相同的 setsockopt() 值配置请求。
  3. 使用两次 splice() 调用将数据从目标文件移入 AF_ALG 请求路径,即存在缺陷的内核路径。
  4. 解压一个 160 字节的内嵌载荷,并以 4 字节块的形式将其写入目标文件。该载荷是一个包含 /bin/sh 的 ELF 存根。

zlib 数据块并非随机数据。它是一个紧凑型载荷,旨在替换页缓存中 /usr/bin/su 的开头部分,以便下次执行 su 时生成一个 root shell。

受影响版本

存在漏洞的代码是在 Linux 内核 4.14 时代的 algif_aead 变更中引入的,并一直保留到上游修复回退原地优化为止。

广泛范围

  • 自 2017 年起构建的、包含存在漏洞的 algif_aead 原地路径的 Linux 内核。
  • 大多数在该时间段内发布内核且尚未移植修复的主流发行版。
  • 启用了 AF_ALG 加密 API 的系统,这是大多数通用 Linux 发行版的默认配置。

已测试 / 公开验证

发行版内核
Ubuntu 24.04 LTS6.17.0-1007-aws
Amazon Linux 20236.18.8-9.213.amzn2023
RHEL 10.1

上游修复点

  • 6.18.22
  • 6.19.12
  • 7.0

下游 LTS 分支只有在厂商移植进入你实际运行的内核包之后才是安全的。

复现

使用你拥有的实验室虚拟机或容器主机。不要在生产系统上运行此操作。

  1. 启动一个带有存在漏洞内核的系统。
  2. 确认 /usr/bin/su 存在且为 setuid-root。
  3. 运行 PoC:
root@kitploit:~
python3 copy_fail_exp.py
  1. 如果漏洞利用成功,脚本会修补 /usr/bin/su,然后调用 su。根据环境的不同,你最终会进入 root shell 或看到 root 提示符。

运行

该脚本除 Python 3 标准库外没有额外依赖。

root@kitploit:~
python3 copy_fail_exp.py

如果你想先检查目标,脚本当前默认使用 /usr/bin/su。

更新修复

如果你维护下游内核,正确的修复方法是移植上游回退,移除原地 AEAD 优化:

  • 上游修复提交:a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5
  • 该修复主要回退了早期的 72548b093ee3 原地变更。

下游内核树的推荐工作流程:

root@kitploit:~
git cherry-pick a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5
make olddefconfig
make -j"$(nproc)"
make modules_install
make install
reboot

如果你不自行重建内核,请安装包含移植修复的厂商内核包并重启进入该内核。

临时缓解措施

如果修补被延迟,可禁用模块路径作为临时措施:

root@kitploit:~
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif-aead.conf
rmmod algif_aead 2>/dev/null

这只是缓解措施,并非修复。

备注

  • 该 PoC 刻意保持小巧且确定性。
  • 该漏洞利用仅限本地,但在共享主机、CI 运行器、Kubernetes 节点和容器平台上影响较大,因为主机页缓存是共享的。
  • 该内核缺陷是一个逻辑错误,而非竞态条件,因此一旦存在漏洞代码,利用路径就是可靠的。
下载工具
6.12.0-124.45.1.el10_1
SUSE 166.12.0-160000.9-default