漏洞影响范围

受影响的软件版本: 漏洞在 2017 年引入,引入 commit 为: https://github.com/torvalds/linux/commit/72548b093ee3 漏洞修复 commit 为: [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a664bf3d603d](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a664bf3d603d 受影响版本截至到当前日期 5.10 5.15 6.1 6.6 6.12 长期版均未修复,6.18 长期版在 6.18.22 版本中修复该漏洞。

漏洞描述

CVE-2026-31431(Copy Fail)是 Linux 内核 AF_ALG AEAD 接口中的本地提权漏洞:攻击者可将可读文件的页缓存页通过 splice() 引入 algif_aead 的解密路径,而 authencesn 在解密时会对目标 scatterlist 在 assoclen + cryptlen 位置执行 4 字节越界 scratch write,配合 algif_aead 的 in-place 设计会把这 4 字节写入任意可读文件的页缓存而非用户缓冲区,从而在不修改磁盘文件的情况下篡改如 setuid 二进制的内存页缓存内容,最终实现稳定的本地提权。

漏洞复现

poc: https://github.com/theori-io/copy-fail-CVE-2026-31431/blob/main/copy_fail_exp.py

内核版本: image.png

www用户权限 image.png

漏洞风险

可以在已获取低权限用户的前提下,提权至root权限

修复建议

正式防护方案

应用安全补丁

[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a664bf3d603d](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a664bf3d603d临时防护措施

通过以下命令禁用 algif_aead 模块加载

echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf

rmmod algif_aead 2>/dev/null || true