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

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

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

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

工具目录

分类

查看所有分类
Loading categories
cve-2026-31431-copy-fail — 自动扫描器与补丁辅助工具,用于CVE-2026-31431,通过SSH检测易受攻击的Linux主机,验证内核版本,并在多种发行版上应用内核升级或临时缓解措施。 | Kitploit
工具/GitHubGitHub/gagaltotal/cve-2026-31431-copy-fail
漏洞扫描器配置审计网络安全
GitHubgagaltotal/cve-2026-31431-copy-fail

cve-2026-31431-copy-fail

自动扫描器与补丁辅助工具,用于CVE-2026-31431,通过SSH检测易受攻击的Linux主机,验证内核版本,并在多种发行版上应用内核升级或临时缓解措施。

查看仓库

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
23个月前尚未审核
分享

CVE-2026-31431 "Copy Fail" 扫描器与补丁助手

CVE-2026-31431 CVSS Python License

Copy Fail 是一个自动化安全扫描器和补丁助手,用于检测和修复 Linux 基础设施中的 CVE-2026-31431(Linux 内核 algif_aead 本地权限提升)漏洞。


目录

  • 描述
  • 主要功能
  • 系统要求
  • 安装
  • 使用方法
  • 命令行选项
  • 使用示例
  • 输出与结果
  • 支持的发行版
  • 手动补丁指南
  • 临时缓解措施
  • 故障排除
  • 安全参考

描述

CVE-2026-31431 是 Linux 内核模块 algif_aead(AEAD 异步密码接口)中的一个本地权限提升(LPE)漏洞。该漏洞允许本地用户将权限提升至 root 级别。

该工具可帮助:

  • 自动扫描 Linux 子网以检测易受攻击的主机
  • 验证补丁状态 根据内核版本检查每台主机
  • 自动打补丁 通过包管理器升级内核
  • 临时缓解 通过禁用 algif_aead 模块
  • 结构化报告 以表格和 JSON 格式输出

注意:此工具仅供系统管理员进行内部审计和补丁管理。仅可在您拥有或获得授权的主机上使用。


界面示例

Screen Capture

主要功能

1. 可扩展扫描

  • 扫描单台主机、多台主机或整个子网
  • 使用线程池进行并行 SSH 连接(默认:30 个线程)
  • 使用 Rich UI 实时显示进度条
  • 对不稳定的连接自动重试并采用指数退避策略

2. 漏洞检测

  • 检查 SSH 可达性和认证
  • 读取每台主机的内核版本
  • 验证内核是否已打补丁(基于各发行版数据库)
  • 检测 algif_aead 模块状态(已加载/未加载)
  • 检查是否已应用 modprobe.d 缓解措施

3. 自动打补丁

通过包管理器自动升级易受攻击主机的内核:

  • apt(Debian/Ubuntu)
  • dnf(Fedora/RHEL 8+)
  • yum(RHEL 7、CentOS 7)
  • zypper(SUSE/openSUSE)
  • pacman(Arch Linux)

选项: 补丁完成后自动重启

4. 临时缓解措施

  • 通过 modprobe.d 配置禁用 algif_aead 模块
  • 适合在等待维护窗口重启期间的临时修复
  • 注意:如果模块内置于内核,则对 RHEL 系列无效

5. 灵活的 SSH 认证

  • 基于 SSH 密钥的认证(推荐)
  • 基于密码的认证
  • 自定义 SSH 端口支持
  • 连接池以优化资源使用

6. 完整的安全数据库

已打补丁的内核版本数据库,适用于:

  • Ubuntu(6.8.0-60、5.15.0-130、5.4.0-216)
  • RHEL / CentOS / AlmaLinux / Rocky(5.14.0-570)
  • Fedora(6.14.4、6.13.12、6.12.25)
  • Debian(6.1.137、5.10.235)
  • Arch Linux(6.14.4)
  • Amazon Linux(6.1.134、5.10.235、4.14.353)
  • SUSE / openSUSE(6.4.0-18、5.14.21-150600.24)

7. 全面报告

  • 彩色扫描结果表格(Rich 格式)
  • 汇总统计(总主机数、易受攻击数、已修补数等)
  • 将结果导出为 JSON 以便与其他系统集成
  • 每台主机的错误跟踪和重试计数

系统要求

系统需求

  • Python:3.7 或更高版本
  • 操作系统:Linux/Mac/Windows(使用 WSL)
  • 网络:可 SSH 访问目标主机
  • SSH 密钥或密码:用于认证

Python 依赖

root@kitploit:~
paramiko>=3.0.0    # SSH library
rich>=13.0.0       # Beautiful terminal UI

安装

1. 克隆仓库

root@kitploit:~
git clone https://github.com/gagaltotal/cve-2026-31431-copy-fail.git
cd cve-2026-31431-copy-fail

2. 创建虚拟环境

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate

3. 安装依赖

root@kitploit:~
pip install -r requirements.txt

或手动安装:

root@kitploit:~
pip install paramiko>=3.0.0 rich>=13.0.0

4. 验证安装

root@kitploit:~
python3 copyfail_scanner.py --help

使用方法

基本语法

root@kitploit:~
# 使用 SSH 密钥扫描子网
python3 copyfail_scanner.py --subnet <CIDR> --user <USERNAME> --key <PATH_TO_KEY>

# 扫描多个特定主机
python3 copyfail_scanner.py --hosts <IP1>,<IP2>,<IP3> --user <USERNAME> [--password <PASSWORD>]

# 扫描 + 自动打补丁
python3 copyfail_scanner.py --subnet <CIDR> --user <USERNAME> --key <PATH> --patch

# 扫描 + 临时缓解
python3 copyfail_scanner.py --subnet <CIDR> --user <USERNAME> --key <PATH> --mitigate

命令行选项

选项描述示例
--subnet目标子网 CIDR(与 --hosts 互斥)--subnet 192.168.1.0/24
--hosts逗号分隔的 IP 列表(与 --subnet 互斥)--hosts 192.168.1.10,192.168.1.20
--userSSH 用户名 (必填)--user root
--passwordSSH 密码(可选,无密钥时使用)--password secret123
--keySSH 私钥路径--key ~/.ssh/id_rsa
--portSSH 端口(默认:22)--port 2222
--threads并行线程数(默认:30)--threads 50
--patch自动升级易受攻击主机的内核--patch
--reboot补丁后自动重启(与 --patch 一起使用)--patch --reboot
--mitigate应用临时缓解措施(禁用 algif_aead)--mitigate
--output将扫描结果导出到 JSON 文件--output hasil.json
--yes在补丁/缓解前跳过确认提示--yes

使用示例

示例 1:基本子网扫描(只读)

root@kitploit:~
python3 copyfail_scanner.py \
  --subnet 192.168.1.0/24 \
  --user ubuntu \
  --key ~/.ssh/id_rsa

输出:显示扫描结果表格和摘要


示例 2:使用密码扫描特定主机

root@kitploit:~
python3 copyfail_scanner.py \
  --hosts 10.0.1.5,10.0.1.6,10.0.1.7 \
  --user admin \
  --password my_password123

示例 3:扫描 + 临时缓解

root@kitploit:~
python3 copyfail_scanner.py \
  --subnet 172.16.0.0/16 \
  --user root \
  --key ~/.ssh/id_rsa \
  --mitigate

操作:扫描所有主机,然后在易受攻击的主机上禁用 algif_aead 模块(需要确认)


示例 4:扫描 + 自动打补丁(不重启)

root@kitploit:~
python3 copyfail_scanner.py \
  --subnet 192.168.0.0/24 \
  --user ubuntu \
  --key ~/.ssh/id_rsa \
  --patch

操作:升级内核,但不自动重启(需要手动重启)


示例 5:扫描 + 打补丁 + 自动重启

root@kitploit:~
python3 copyfail_scanner.py \
  --subnet 10.10.0.0/24 \
  --user root \
  --key ~/.ssh/id_rsa \
  --patch \
  --reboot \
  --yes

操作:扫描、修补内核、自动重启、跳过确认


示例 6:扫描 + 导出 JSON 结果

root@kitploit:~
python3 copyfail_scanner.py \
  --subnet 192.168.1.0/24 \
  --user sysadmin \
  --key ~/.ssh/id_rsa \
  --output scan_results_$(date +%Y%m%d_%H%M%S).json

输出:终端表格 + JSON 文件结果


示例 7:多线程和自定义端口扫描

root@kitploit:~
python3 copyfail_scanner.py \
  --subnet 10.0.0.0/25 \
  --user ubuntu \
  --key ~/.ssh/id_rsa \
  --port 2222 \
  --threads 50

输出与结果

终端输出(表格)

扫描输出示例:

root@kitploit:~
┏━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━┓
┃ IP            ┃ Hostname       ┃ Distro        ┃ Kernel        ┃ algif   ┃ Status  ┃ Action  ┃ Notes   ┃
┣━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━╋━━━━━━━━━╋━━━━━━━━━╋━━━━━━━━━╋━━━━━━━━━┫
┃ 192.168.1.10  ┃ web-01         ┃ Ubuntu 22.04  ┃ 6.8.0-60      ┃ LOADED  ┃ ✓ 安全  ┃ -       ┃ 已修补 ┃
┃ 192.168.1.11  ┃ web-02         ┃ Ubuntu 20.04  ┃ 5.4.0-200     ┃ NOT_LDD ┃ ✗ 易受攻击 ┃ 已修补 ┃ -       ┃
┃ 192.168.1.12  ┃ db-01          ┃ RHEL 8.9      ┃ 5.14.0-560    ┃ LOADED  ┃ ? 未知  ┃ -       ┃ 发行版  ┃
┗━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━┻━━━━━━━━━┻━━━━━━━━━┻━━━━━━━━━┻━━━━━━━━━┛

摘要:
  扫描的主机总数:12
  可访问(SSH):11
  离线:1
  易受攻击:2
  已修补:8
  状态未知:1

输出列

  • IP:目标 IP 地址
  • 主机名:hostname -f 的结果
  • 发行版:Linux 发行版(来自 /etc/os-release)
  • 内核:内核版本(来自 uname -r)
  • algif_aead:模块状态(已加载/未加载/已阻止)
  • 状态:✓ 安全 / ✗ 易受攻击 / ? 未知
  • 补丁/缓解:已应用的操作(内核升级/缓解)
  • 备注:错误或附加信息

JSON 导出格式

root@kitploit:~
{
  "cve": "CVE-2026-31431",
  "scan_time": "2026-05-08T15:30:45.123456",
  "results": [
    {
      "ip": "192.168.1.10",
      "ssh_reachable": true,
      "auth_ok": true,
      "hostname": "web-01",
      "distro": "Ubuntu 22.04 LTS",
      "os_id": "ubuntu",
      "kernel_version": "6.8.0-60-generic",
      "algif_loaded": true,
      "modprobe_blocked": false,
      "patched": true,
      "patch_applied": false,
      "mitigation_applied": false,
      "retry_count": 0,
      "error": ""
    }
  ]
}

支持的发行版

扫描器支持以下发行版的自动检测:

发行版包管理器已修补的内核版本备注
Ubuntuapt6.8.0-60、5.15.0-130、5.4.0-216LTS 及当前版本
Debianapt6.1.137、5.10.235稳定版
RHELdnf/yum5.14.0-570包括 CentOS Stream
AlmaLinuxdnf5.14.0-570RHEL 的直接替代品
Rockydnf5.14.0-570面向企业
Fedoradnf6.14.4、6.13.12、6.12.25前沿版本
Amazon Linuxdnf6.1.134、5.10.235、4.14.353AWS 兼容
SUSE / openSUSEzypper6.4.0-18、5.14.21-150600.24企业版和社区版
Arch Linuxpacman6.14.4滚动更新

对于未检测到的发行版:手动验证内核版本。内核 >= 6.14.4 通常已安全。


手动补丁指南

如果您更倾向于手动打补丁或自动补丁失败,请按照各发行版的指南操作:

Ubuntu / Debian

root@kitploit:~
sudo apt update
sudo apt upgrade linux-image-generic kmod
sudo reboot

RHEL 8+ / CentOS Stream / AlmaLinux / Rocky

root@kitploit:~
sudo dnf clean metadata
sudo dnf upgrade kernel
sudo reboot

Fedora

root@kitploit:~
sudo dnf upgrade kernel
sudo reboot

Amazon Linux 2023 / 2

root@kitploit:~
sudo dnf upgrade kernel
sudo reboot

SUSE / openSUSE

root@kitploit:~
sudo zypper update kernel-default
sudo reboot

Arch Linux

root@kitploit:~
sudo pacman -Syu linux linux-headers
sudo reboot

临时缓解措施

如果您无法立即重启以进行内核升级,请应用以下缓解措施:

root@kitploit:~
# 通过 modprobe.d 禁用 algif_aead 模块
echo 'install algif_aead /bin/false' | sudo tee /etc/modprobe.d/disable-algif_aead.conf

# 如果模块已加载则卸载
sudo rmmod algif_aead 2>/dev/null || echo "Module not loaded"

重要:

  • 缓解措施仅为临时修复
  • 不要将其作为长期解决方案
  • 仍应尽快安排内核升级
  • 对于 CONFIG_CRYPTO_USER_API_AEAD=y 的 RHEL 系列,模块内置于内核,modprobe.d 无效 → 内核升级是唯一解决方案

故障排除

1. 连接超时

root@kitploit:~
Error: Port SSH tidak terbuka

解决方案:

  • 检查 SSH 端口是否开放:nc -zv <IP> 22
  • 验证防火墙规则
  • 如果 SSH 运行在自定义端口,使用 --port

2. 认证失败

root@kitploit:~
Error: Autentikasi SSH gagal

解决方案:

  • 验证 SSH 密钥权限:chmod 600 ~/.ssh/id_rsa
  • 手动测试连接:ssh -i ~/.ssh/id_rsa user@host
  • 如果偏好密码认证,使用 --password
  • 检查用户是否已在远程主机上设置

3. 打补丁时权限被拒绝

root@kitploit:~
Exit code 1: dpkg: error processing...

解决方案:

  • 确保用户具有 sudo 访问权限(最好是无密码 sudo)
  • 检查 sudoers 文件:sudo visudo
  • 对于完全自动化的补丁,用户必须能够无密码提示运行 apt/dnf/yum

4. 多次重试

root@kitploit:~
Retry: 3x | Host temporary unavailable

解决方案:

  • 网络不稳定,请稍等片刻
  • 减少线程数:--threads 10
  • 检查主机健康状况和 SSH 守护进程状态

5. "未知发行版"

root@kitploit:~
Status: ? TIDAK DIKETAHUI

解决方案:

  • 内核 >= 6.14.4 视为安全
  • 手动验证:uname -r 并与公告比较
  • 如有必要,添加到 PATCHED_KERNEL_MAP

6. 补丁失败

root@kitploit:~
Exit code 1: Failed to lock apt database

解决方案:

  • 主机正在运行其他包管理器
  • 等待或手动在非高峰时段运行补丁
  • 检查日志:sudo tail -f /var/log/apt/term.log

安全参考

官方 CVE 信息

  • NVD:https://nvd.nist.gov/vuln/detail/CVE-2026-31431
  • copy.fail:https://copy.fail(官方公告)

厂商安全公告

  • Ubuntu:https://ubuntu.com/security/CVE-2026-31431
  • Red Hat:https://access.redhat.com/security/cve/cve-2026-31431
  • AlmaLinux:https://almalinux.org/blog/2026-05-01-cve-2026-31431-copy-fail/
  • Debian:https://security-tracker.debian.org/tracker/CVE-2026-31431

技术细节

  • CVSS 评分:7.8 高
  • 攻击向量:本地
  • 所需权限:低
  • 用户交互:无
  • 影响:完全系统入侵(机密性、完整性、可用性)

内核补丁参考

  • Linux 内核 Git:https://github.com/torvalds/linux/commit/...(具体补丁哈希)
  • LKML 讨论:https://lkml.org/(内核邮件列表)

许可证与免责声明

仅供内部使用 — 此工具仅供有权限的系统管理员进行审计和补丁管理。

root@kitploit:~
免责声明:
- 仅可在您拥有或获得明确授权访问的系统上使用
- 自动打补丁和重启可能导致停机
- 在生产环境部署前先在暂存环境测试
- 打补丁前确保有备份
- 开发者对数据丢失或服务中断不承担责任

贡献与支持

作者:GagalTotal
仓库:https://github.com/gagaltotal/cve-2026-31431-copy-fail
联系方式:ghostgtr666

如需报告错误、请求功能或有疑问:

  1. 打开 GitHub Issues
  2. 附上输出日志和环境详细信息
  3. 请具体说明并提供可复现的步骤

最后更新:2026 年 5 月 8 日
扫描器版本:1.0

下载工具