JimmyPughtron/CVE-2026-31431-Copy-Fail---Minified-LPE-PoC
GitHub: JimmyPughtron/CVE-2026-31431-Copy-Fail---Minified-LPE-PoC
针对 Linux 内核 AF_ALG 漏洞(CVE-2026-31431)的高度压缩本地权限提升 PoC,通过篡改内存 Page Cache 实现 root 提权。
Stars: 0 | Forks: 0
# CVE-2026-31431-CopyFail---压缩-LPE-PoC
⚠️ 免责声明
仅供教育与授权安全测试使用。
此概念验证(PoC)是为授权的红蓝对抗模拟和漏洞审计而编写的。作者及贡献者不对任何滥用此代码的行为承担责任。请勿对您不拥有或未获得明确书面测试许可的系统使用此漏洞利用程序。
📝 概述
CVE-2026-31431(俗称“Copy Fail”)是 Linux Kernel 的 Cryptographic API (AF_ALG) 中的一个本地权限提升(LPE)漏洞。通过将 AF_ALG socket 与 splice() 系统调用结合使用,无特权用户可以强制内核将任意字节直接写入只读文件的内存 Page Cache 中。
此特定实现经过高度压缩(18行),非常适合在红蓝对抗行动中使用,特别是当攻击者处于受限 shell 环境、缺乏文件上传能力,并且必须通过 python3 交互模式手动输入 exploit 时。
⚙️ Exploit 策略
此脚本没有尝试将复杂的 ELF shellcode 注入到 setuid binary 中(这通常会因为 padding 和 header 限制而崩溃),而是将目标对准了 /etc/passwd。
1. 它在文件中定位当前运行用户的 UID 字段。
2. 它使用 AF_ALG socket 零拷贝(zero-copy)splice 一个内容为 0000 的 payload 覆盖原有的 UID。
3. 由于修改发生在 RAM(Page Cache)中而不是磁盘上,它绕过了标准的文件完整性监控(FIM)。
4. 调用 su 会检查已损坏的 cache,读取到 UID 0,验证用户的正常密码,并 drop 一个 root shell。
5.
🚀 前置条件
内核中必须加载易受攻击的 crypto 模块,此 exploit 才能发挥作用:
sudo modprobe algif_aead authencesn
🎯 执行与验证
1. 运行脚本。
2. 脚本将暂停并提示您输入密码:Password:
3. 输入您当前用户的密码。
4. 提示符将变为 #。使用 id (uid=0(root)) 进行验证。
注意:如果脚本执行完毕但您遇到“Authentication Failure”,系统的 Name Service Cache Daemon (nscd 或 sssd) 可能正在缓存您的旧 UID。运行 nscd -i passwd(如果可用)或执行 su - 以强制刷新。
🧹 清理 / 补救措施
此 exploit 仅改变了系统的易失性内存。要将系统恢复到安全状态并恢复正确的 UID 映射而无需重启,请将损坏的页面从 cache 中逐出:
# 必须以 root 身份执行
echo 3 > /proc/sys/vm/drop_caches
标签:Cutter, Linux内核, PoC, Web报告查看器, 安全, 安全渗透, 暴力破解, 本地提权, 超时处理