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

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

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

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

工具目录

分类

查看所有分类
Loading categories
copy-fail-fix — 针对 CVE-2026-31431(“Copy Fail”)Linux 内核本地提权漏洞的各发行版缓解脚本。 | Kitploit
工具/GitHubGitHub/bryanvine/copy-fail-fix
漏洞分析脚本与自动化配置审计
GitHubbryanvine/copy-fail-fix

copy-fail-fix

针对 CVE-2026-31431(“Copy Fail”)Linux 内核本地提权漏洞的各发行版缓解脚本。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

copy-fail-fix

针对 CVE-2026-31431(“Copy Fail”) 的各发行版缓解脚本——这是一个影响 Linux 内核 algif_aead 的本地权限提升漏洞,几乎影响自 2017 年以来发布的所有发行版。

每个脚本要么从发行版软件仓库安装已修补的内核(如果可用),要么在不可用时将存在漏洞的 algif_aead 内核模块加入黑名单,从而在您重启到已修复内核之前关闭漏洞利用路径。

快速上手

为您的发行版选择对应脚本,审计后以 root 身份运行。

root@kitploit:~
# Ubuntu
sudo bash scripts/ubuntu.sh

# Debian
sudo bash scripts/debian.sh

# RHEL / Rocky / AlmaLinux / CentOS Stream
sudo bash scripts/rhel.sh

# Fedora
sudo bash scripts/fedora.sh

# Arch
sudo bash scripts/arch.sh

# openSUSE Leap / Tumbleweed
sudo bash scripts/opensuse.sh

# Alpine
sudo bash scripts/alpine.sh

# 其他发行版(Gentoo、NixOS、不可变发行版等)
sudo bash scripts/universal.sh

如果希望先预览而不做任何更改,请先使用 --check。

每个脚本的作用

各发行版脚本执行以下算法;universal.sh 跳过第 4–5 步。

  1. 提升权限。 如果当前不是 root,则通过 sudo 重新执行。
  2. 确认发行版。 除非使用 --force,否则拒绝在不匹配的主机上运行。
  3. 读取 uname -r。
  4. 已修补? 如果您的发行版已记录 PATCHED_KERNEL_VERSION,且当前运行的内核版本不低于该版本,脚本会移除任何残留的缓解文件并退出。
  5. 有可用补丁? 询问您的包管理器。如果有候选内核版本 ≥ 已修补版本,会提示您(使用 --yes 跳过)安装。安装后,您需要手动重启。
  6. 缓解。 如果尚无可用的已修补内核(或您拒绝了),则写入 /etc/modprobe.d/cve-2026-31431.conf,内容为 blacklist algif_aead 和 install algif_aead /bin/true,然后通过 AF_ALG 套接字绑定探测验证漏洞利用路径已关闭。

补丁状态

PATCHED_KERNEL_VERSION = PENDING 表示维护者尚未记录该发行版的已修复内核版本。每一行通过一行 PR 更新。

参数

手动验证缓解状态

脚本会自动运行此探测。如需自行检查:

root@kitploit:~
python3 - <<'PY'
import socket, errno
try:
    s = socket.socket(socket.AF_ALG, socket.SOCK_SEQPACKET, 0)
    s.bind(("aead", "authencesn(hmac(sha1),cbc(aes))"))
    print("BAD: bind succeeded — host is NOT mitigated")
    s.close()
except OSError as e:
    print(f"OK: bind blocked, errno={e.errno} ({e.strerror})" if e.errno == errno.ENOENT
          else f"INCONCLUSIVE: errno={e.errno}")
PY

已缓解或已修补的主机会输出 OK: bind blocked, errno=2 ...。

撤销

在您的发行版发布已修复内核并重启到该内核后,请移除 modprobe 黑名单,以便合法使用 AF_ALG aead 的应用程序能够正常工作:

root@kitploit:~
sudo bash scripts/<your-distro>.sh --undo

贡献

当您的发行版发布已修复内核时:

  1. 编辑 scripts/<distro>.sh 中的一行——将 PATCHED_KERNEL_VERSION 设置为已修复的软件包版本(格式为 dpkg-query -W / rpm -q VERSION-RELEASE / pacman -Q 返回的格式)。
  2. 更新本 README 补丁状态表中对应的行。
  3. 提交标题为 <distro>: fix shipped in <version> 的 PR。

免责声明

安全缓解工具。在将任何从互联网上找到的脚本通过管道输入 sudo bash 之前,请先进行审计。维护者不对 MIT 许可证下的任何责任负责。

许可证

MIT。

下载工具
发行版内核包已修补版本最后检查时间
Ubuntu (24.04)linux-image-genericPENDING2026-05-01
Debianlinux-image-amd64PENDING2026-05-01
RHEL / Rocky / AlmakernelPENDING2026-05-01
FedorakernelPENDING2026-05-01
ArchlinuxPENDING2026-05-01
openSUSEkernel-defaultPENDING2026-05-01
Alpinelinux-ltsPENDING2026-05-01
参数含义
-y, --yes非交互模式;跳过内核安装提示。
--force绕过发行版不匹配检查。
--check只读预览;打印将要执行的操作,不更改任何内容。
--undo移除 /etc/modprobe.d/cve-2026-31431.conf。在安装已修补内核后使用。
-h, --help用法信息。