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

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

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

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

工具目录

分类

查看所有分类
Loading categories
copy-fail-checker — 针对 Copy Fail Linux 内核漏洞(CVE-2026-31431)的只读 Bash 检查器 | Kitploit
工具/GitHubGitHub/samanzamani/copy-fail-checker
权限提升漏洞扫描器漏洞分析漏洞利用脚本与自动化密码学学习与教育
GitHubsamanzamani/copy-fail-checker

copy-fail-checker

针对 Copy Fail Linux 内核漏洞(CVE-2026-31431)的只读 Bash 检查器

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Copy Fail Checker — CVE-2026-31431

一个轻量、依赖极少的 Bash 脚本,用于判断你的 Linux 系统是否容易受到 Copy Fail 本地权限提升漏洞(CVE-2026-31431)的影响。

该脚本是只读的:它绝不会利用该漏洞,不会加载内核模块,也不会修改系统。


什么是 Copy Fail?

Copy Fail 是 Linux 内核 authencesn AEAD 加密模板中的一个逻辑缺陷,可通过 AF_ALG(algif_aead)套接字接口从用户空间触达。

字段值
CVECVE-2026-31431
披露时间2026-04-29
CVSS v3.17.8(高危)
类型本地权限提升
受影响组件crypto/authencesn + crypto/algif_aead
引入时间2017 年(algif_aead.c 中的原地 AEAD 优化)
主线修复提交 a664bf3d603d,合并于 2026-04-01

为何重要

非特权本地用户可以触发一次确定性的、受控的 4 字节写入,写入目标是其可读取的任何文件的页缓存。一个公开的概念验证程序(732 字节的 Python)利用该原语覆盖 setuid 二进制文件,从而在几乎所有 2017 年以来发布的主流发行版上获取 root 权限。

谁受影响

任何 Linux 发行版,只要其搭载的内核构建于 2017 年之后且启用了 algif_aead,均受影响。已确认受影响的发行版系列包括:

  • Ubuntu 18.04 → 25.10(Ubuntu 26.04 "Resolute" 不受影响)
  • Debian(当前所有受支持的套件)
  • RHEL / AlmaLinux / Rocky / CentOS Stream 8、9、10
  • SUSE Linux Enterprise / openSUSE
  • Amazon Linux 2023
  • 大多数衍生自上述发行版的容器主机和托管 Kubernetes 节点镜像

快速开始

root@kitploit:~
# Download the script
curl -fsSLO https://raw.githubusercontent.com/samanzamani/copy-fail-checker/main/check-copy-fail.sh

# Make it executable
chmod +x check-copy-fail.sh

# Run it
./check-copy-fail.sh

或克隆仓库:

root@kitploit:~
git clone https://github.com/samanzamani/copy-fail-checker.git
cd copy-fail-checker
./check-copy-fail.sh

脚本不需要 root 权限。以你的普通用户身份运行能获得对攻击面最真实的评估,因为这正是攻击者所处的上下文。


脚本检查什么

脚本执行三项相互独立的检查,并将结果合并为一个判定结果。

1. 内核版本

它会读取 /etc/os-release 和 uname -r 的输出,然后将当前运行的内核与发行版安全团队发布的官方修复版本进行比较。该版本表目前覆盖:

如果你的发行版不在表中,脚本将回退到下面的运行时检查。

2. algif_aead 模块状态

脚本在不修改任何内容的情况下检查以下四项:

  • 模块当前是否已加载(lsmod)
  • 模块是否可加载(modinfo)
  • 模块在 /etc/modprobe.d、/usr/lib/modprobe.d 或 /run/modprobe.d 中是否被列入黑名单
  • 模块在 /boot/config-<uname> 或 /proc/config.gz 中是否为内建(builtin)

即使内核未打补丁,一个被列入黑名单、未加载且非内建的模块也能关闭攻击面。

3. AF_ALG 套接字可达性

最可靠的信号是攻击者实际能看到的情况。脚本使用一个极小的 Python 探针(socket.socket(AF_ALG, SOCK_SEQPACKET, 0) 后跟 bind() 到 authencesn(hmac(sha256),cbc(aes)) AEAD 模板),以确认在非特权上下文中能否创建并绑定 AF_ALG 套接字。该探针会创建、绑定并立即关闭套接字,不会留下任何可利用的痕迹。

如果未安装 python3,则跳过探针,判定结果仅依赖检查 1 和检查 2。


可能的判定结果


用于自动化的 JSON 输出

对于流水线、配置管理或大规模主机扫描,可传入 --json 参数:

root@kitploit:~
./check-copy-fail.sh --json

示例输出:

root@kitploit:~
{
  "verdict": "vulnerable",
  "distro_id": "ubuntu",
  "distro_version_id": "24.04",
  "kernel": "6.8.0-31-generic",
  "patched_version": "",
  "kernel_status": "unknown",
  "module_loaded": 0,
  "module_builtin": 0,
  "module_available": 1,
  "module_blacklisted": 0,
  "af_alg_status": "reachable"
}

缓解措施

建议:安装厂商内核更新

这是唯一完整的修复方式。更新后请重启,以确保新内核真正运行起来。

root@kitploit:~
# Debian / Ubuntu
sudo apt update && sudo apt full-upgrade && sudo reboot

# RHEL / AlmaLinux / Rocky / CentOS Stream
sudo dnf clean metadata && sudo dnf upgrade && sudo reboot

# openSUSE / SLES
sudo zypper refresh && sudo zypper update && sudo reboot

# Amazon Linux 2023
sudo dnf upgrade --releasever=latest && sudo reboot

临时规避措施:禁用 algif_aead

如果你目前无法立即重启到已修复的内核,请将该易受攻击的模块列入黑名单。这会影响任何合法使用 AF_ALG AEAD 密码算法的应用程序(在大多数服务器上很少见——请先在预发布环境中验证)。

root@kitploit:~
# Persist the blacklist across reboots
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf

# Unload it from the running kernel right now
sudo rmmod algif_aead 2>/dev/null || true

如果模块是内建的,列入黑名单将不起作用,但可以禁用其 initcall。此时必须重启。

root@kitploit:~
sudo grubby --update-kernel=ALL --args="initcall_blacklist=algif_aead_init"

sudo reboot

对于容器化工作负载,还应在你的 seccomp 配置文件中屏蔽 AF_ALG 套接字族,这样即使容器被攻破,也无法触及内核攻击面。


运行示例

root@kitploit:~
== System information ==
[INFO]    Distribution : Ubuntu 24.04.2 LTS (ubuntu 24.04)
[INFO]    Kernel       : 6.8.0-31-generic

== Check 1 / 3 — Kernel version ==
[WARN]    No vendor-fixed kernel version is recorded for ubuntu 24.04.
[WARN]    Falling back to runtime mitigation checks below.

== Check 2 / 3 — algif_aead kernel module ==
[WARN]    algif_aead is not loaded but can be autoloaded on demand (no blacklist found).

== Check 3 / 3 — AF_ALG socket reachability ==
[VULN]    AF_ALG sockets are reachable from this unprivileged context.

== Verdict ==
[VULN]    This system appears to be VULNERABLE to CVE-2026-31431.
[VULN]    Apply the vendor kernel update or blacklist algif_aead as a temporary mitigation.

局限性

  • 已修复版本表仅覆盖上述发行版系列。欢迎提交 PR 以扩展该表。
  • 脚本信任 uname -r 的输出。如果你运行的是树外(out-of-tree)或重新编译的内核,版本比较可能无法反映修复是否真的被移植(backport)。
  • 实时容器/沙箱环境可能仅仅因为 seccomp 生效而将 AF_ALG 报告为 blocked_permission——宿主机内核本身可能仍然易受攻击。

参考链接

  • CERT-EU 安全公告 2026-005
  • Xint 披露:732 字节即可在所有主流 Linux 发行版上获取 root
  • AlmaLinux:CVE-2026-31431 补丁已发布
  • Ubuntu:Copy Fail 漏洞修复已可用
  • Microsoft 安全博客:云环境中的 Copy Fail
  • Sophos:PoC 利用代码已可用
  • SUSE 对 copy.fail 的回应
  • The Hacker News 的报道
  • Bugcrowd:我们对 Copy Fail 的了解
  • The Register 的报道

许可证

MIT —— 可自由使用、修改和分发。无任何担保。

下载工具
发行版已修复内核(≥)
AlmaLinux / RHEL / Rocky / CentOS 84.18.0-553.121.1.el8_10
AlmaLinux / RHEL / Rocky / CentOS 95.14.0-611.49.2.el9_7
AlmaLinux / RHEL / Rocky / CentOS 106.12.0-124.52.2.el10_1
Ubuntu 26.04+("Resolute")不受影响
Ubuntu 18.04 – 25.10滚动更新,参见 apt
Debian(所有套件)滚动更新,参见 DSA
判定结果退出码含义
patched0正在运行的内核等于或高于厂商修复版本。
mitigated0AF_ALG 已被阻止,且模块未加载。
likely_mitigated0模块已被列入黑名单且未加载;无法进行实时探针检测。
vulnerable1内核未打补丁,且 algif_aead / AF_ALG 可达。
unknown2信号不足,无法判定。请视为潜在易受攻击。
not_applicable3当前并非运行在 Linux 上。