SunL0w/PATCH-CVE-2026-31431-Ubuntu_Debian

GitHub: SunL0w/PATCH-CVE-2026-31431-Ubuntu_Debian

针对 Linux 内核 CVE-2026-31431 漏洞的持久化缓解脚本,通过黑名单机制阻断 algif_aead 模块加载以防止本地提权攻击。

Stars: 1 | Forks: 0

# 🛡️ CVE-2026-31431 (Copy Fail) 缓解措施 - Linux 内核 本仓库包含旨在消除 Ubuntu 系统上严重漏洞 **CVE-2026-31431**(绰号 **"Copy Fail"**)的脚本。 ## 📋 前置条件与安装 在应用补丁之前,请下载官方检测脚本(由 `rootsecdev` 开发)以验证您系统的当前状态: ``` # 下载 detection script wget https://raw.githubusercontent.com/rootsecdev/cve_2026_31431/main/test_cve_2026_31431.py # 确保你已安装 python3 python3 --version ``` ## 📝 漏洞背景 **CVE-2026-31431** 漏洞($CVSS\ 7.8$)影响 Linux 内核的加密子系统(`algif_aead` 模块)。 ### 问题所在 本地用户可以通过利用 `splice()` 函数“原地”优化中的缺陷来破坏系统的 **Page Cache**。这允许攻击者强制内核将任意数据(序列号)写入本应为只读的文件内存页中(例如 SUID 二进制文件或敏感系统文件)。 ### 为什么简单的 `modprobe -r` 是不够的 Linux 内核使用一种称为 **自动加载** 的机制。如果进程或脚本(如检测器)请求类型为 `AF_ALG` 的 socket,即使该模块已被手动移除,内核也会自动重新加载它。此补丁中使用的方法(**“硬阻断”**)从物理上阻止内核加载模块二进制文件。 ## 🚀 用法 ### 1. 验证漏洞 运行测试程序以确认您的当前内核是否受影响: ``` python3 test_cve_2026_31431.py ``` *如果脚本显示 `[!] VULNERABLE`,请继续执行下一步。* ### 2. 应用缓解措施 `patch-CVE-2026-31431.sh` 脚本可永久消除此攻击媒介。它会在 `/etc/modprobe.d/` 中创建一个配置文件,并更新 `initramfs` 以确保重启后阻断依然有效。 ``` chmod +x patch-CVE-2026-31431.sh sudo ./patch-CVE-2026-31431.sh ``` ### 3. 补丁后验证 再次运行检测脚本。您现在应该会看到一条提示先决条件未满足的信息: `[+] Precondition not met ('authencesn(...) cannot be instantiated)`。 这确认模块已被**成功消除**。 ## 🔄 恢复(更新后) 一旦 Ubuntu 通过内核更新发布了官方修复(请检查 `apt upgrade` 中关于 CVE-2026-31431 的说明),您应恢复原生的加密功能: ``` chmod +x unpatch-CVE-2026-31431.sh sudo ./unpatch-CVE-2026-31431.sh ``` ## 🛠️ 技术细节 此防护依赖于 `/etc/modprobe.d/cve-2026-31431-mitigation.conf` 中的以下指令: ``` blacklist algif_aead install algif_aead /bin/true ``` `install` 命令将内核加载模块的尝试重定向到 `/bin/true`,该命令会返回一个“成功”的退出代码,而不会执行任何存在漏洞的代码。 ## 补丁由以下人员制作: Developper SunL0w
标签:AF_ALG, CVE-2026-31431, initramfs, Linux内核, modprobe, Python, Shell脚本, splice系统调用, SUID, sysadmin, Web报告查看器, 内存破坏, 协议分析, 子域名枚举, 安全补丁, 密码学子系统, 应用安全, 无后门, 本地提权, 权限提升, 模块禁用, 漏洞缓解, 系统安全, 网络安全, 防护脚本, 隐私保护, 页面缓存