一个针对 CVE-2026-31431 漏洞的专业概念验证,该漏洞是 Linux 内核 algif_aead / authencesn 页缓存处理中的一个严重缺陷。
CVE-2026-31431 漏洞,俗称 “Copy Fail”,涉及一个于 2026 年 4 月 29 日披露的页缓存临时写入(scratch-write)缺陷。它允许非特权本地用户在无需修改磁盘上文件的情况下,破坏 /etc/passwd 或 /usr/bin/su 等系统关键文件的页缓存视图,从而实现本地权限提升(LPE)。[1]
algif_aead 组件就地执行 AEAD(带关联数据的认证加密)操作。当源数据通过 splice() 从常规文件输入时,目标散列列表(scatterlist)会引用该文件的页缓存页面。authencesn(hmac(sha256), cbc(aes)) 算法会对 AAD 的 seqno_lo 字段执行一次 4 字节的“临时”写入到目标位置,从而直接破坏页缓存副本。[1]
| 发行版 | 状态 |
|---|---|
| Ubuntu 24.04 LTS | 确认受影响 |
| Amazon Linux 2023 | 确认受影响 |
注意: 任何包含提交
72548b093ee3(可追溯至 2017 年)且未应用上游回退的内核均可能受影响。
| 文件 | 描述 |
|---|---|
exploit.py | 针对系统二进制文件的 LPE 原语的紧凑实现。 |
使用提供的漏洞利用脚本获取 root shell:
python3 exploit.py
该脚本会自动破坏 /usr/bin/su 或 /etc/passwd 的页缓存以提升权限。建议用户在运行前仔细审查代码,因为它会与敏感的系统组件交互。
核心原语利用以下序列:
sendmsg。splice() 输入到操作套接字。recv(),该调用在返回错误之前执行临时写入。在部署已修补的内核之前,应禁用 algif_aead 模块:
sudo tee /etc/modprobe.d/disable-algif-aead.conf <<<'install algif_aead /bin/false'
sudo rmmod algif_aead 2>/dev/null
警告: 本工具仅用于教育和授权安全评估目的。对您不拥有或未经明确许可测试的系统进行未经授权的使用是非法且不道德的。作者对滥用行为不承担任何责任。
[1] Xint 博客:Copy Fail - Linux 发行版披露
© 2026 BEN
| RHEL 14.3 | 确认受影响 |
| SUSE 16 | 确认受影响 |