rivaldofwijaya/copy-success

GitHub: rivaldofwijaya/copy-success

针对 CVE-2026-31431 Linux 内核本地提权漏洞的多层补偿控制脚本,在无法及时打补丁时通过模块阻断、文件保护、审计监控与内核加固等手段降低漏洞可利用性。

Stars: 0 | Forks: 0

# copy-success copy-success 是针对 **CVE-2026-31431**(Linux 内核中的一个本地权限提升漏洞,涉及 `splice()` + AF_AEAD 套接字,影响内核版本 ≥ 6.11)的补偿控制脚本。适用于暂无法应用官方内核补丁的环境。 ## 功能说明 | 缓解措施 | 作用 | |---|---| | **AF_AEAD 模块黑名单** | 阻止易受攻击的内核模块加载,使漏洞利用无法启动 | | **对 SUID 二进制文件执行 `chattr +i`** | 在 OS 层面写保护 `/usr/bin/su` 及其他特权二进制文件,阻断漏洞利用所依赖的文件覆盖操作 | | **完整性监控** | 记录所有特权系统二进制文件的校验和,并按计划运行,对任何更改或文件缺失发出警报 | | **`auditd` 检测规则** | 记录可疑活动:与漏洞利用相关的套接字调用、对特权二进制文件的写入,以及被修改文件的执行 | | **内核加固** | 限制通常用于设置或执行漏洞利用的内核功能 | | **Initramfs 重建** | 确保模块阻止在重启后仍然生效 | ## 关键注意事项 1. **首先在非生产系统上进行测试。** 该脚本会对系统文件、内核设置、引导配置和审计规则进行永久性更改。 2. **写保护的文件无法由包管理器更新。** 部署后,`apt`/`dnf`/`zypper` 将无法更新 `su` 或其他受保护的二进制文件。在应用 OS 更新之前,请先运行 `chattr -i /usr/bin/su`(及其他标记的二进制文件),更新完成后再重新运行此脚本。 3. **initramfs 重建步骤较慢。** 在安装了多个内核的系统上,`update-initramfs -u -k all` 或 `dracut --regenerate-all` 可能需要 2-10 分钟。脚本并未卡死,它最终会执行完毕。 4. **容器宿主机 (Docker/Podman rootless):** 该脚本会检测正在运行的容器服务,并有条件地跳过 `user.max_user_namespaces = 0`,但仍会无条件地应用 `kernel.unprivileged_userns_clone = 0`。在容器宿主机上部署前请验证兼容性。之后您可能需要手动恢复该设置。 5. **高吞吐量服务器:** 在具有繁重 rsync、备份或数据库活动的系统上,针对 `splice()` 的审计规则可能会产生大量日志条目。部署后请监控 `/var/log/audit/audit.log` 的增长情况。 6. **模块阻止可能并非对所有系统都有效**,如果您的内核设置了 `CONFIG_NET_AEAD=y`(这意味着该模块被直接内置到内核中,而不是作为独立模块加载)。无论此情况如何,对特权二进制文件的写保护仍然完全有效,并且是主要的防御层。 ## 用法 ``` # 必须以 root 权限运行 sudo bash copy-success.sh ``` 在 OS 更新或手动回滚后可安全地重新运行。 **要撤消所有缓解措施:** ``` # 移除写保护 while IFS= read -r f; do chattr -i "$f"; done < /var/lib/cve-2026-31431/immutable-files.list # 移除配置文件 rm -f /etc/modprobe.d/cve-2026-31431.conf \ /etc/sysctl.d/99-cve-2026-31431.conf \ /etc/audit/rules.d/cve-2026-31431.rules \ /etc/cron.d/cve-2026-31431 \ /usr/local/sbin/cve-2026-31431-monitor # 重新加载 sysctl --system auditctl -R /etc/audit/audit.rules 2>/dev/null || true update-initramfs -u -k all # or: dracut --regenerate-all --force ``` ## 免责声明 此脚本是一项补偿控制措施,并非永久性修复。它降低了可利用性,但并未修补底层的内核漏洞。请一旦您的发行版提供官方补丁,尽快予以应用。 本脚本按“原样”提供。使用本脚本即表示您确认已阅读并理解上述所有注意事项。对于因使用、部署或修改本脚本而直接或间接引发的任何问题、损害或故障,作者概不负责。使用风险由您自行承担。 ## 建议 - 分阶段部署:测试主机 -> 预发布环境 -> 生产环境 - 记录部署日期和受影响的主机 - 通过发行版的安全公告源([Ubuntu USN](https://ubuntu.com/security/notices)、[RHEL Errata](https://access.redhat.com/errata/)、[Debian DSA](https://www.debian.org/security/))跟踪官方补丁的发布时间 - 监控 `/var/log/cve-2026-31431/` 和 syslog 中与 `CVE-2026-31431 monitor` 相关的条目 - 一旦应用了官方补丁,请移除这些缓解措施
标签:AF_AEAD, auditd, chattr文件锁定, CSV导出, CVE-2026-31431, GitHub Advanced Security, Initramfs重建, Linux内核漏洞, LPE, osquery, Shell脚本, splice系统调用, SUID二进制保护, Web截图, Web报告查看器, 内核模块黑名单, 子域名枚举, 安全加固, 安全渗透, 安全脚本, 容器安全, 应用安全, 本地提权, 漏洞缓解, 特权升级防护, 系统安全, 网络安全, 补偿控制, 运维安全, 隐私保护