
Linux Kernel 是全球使用最广泛的开源操作系统内核,支撑着绝大多数服务器、云主机、容器和嵌入式设备的运行。其 Crypto API 提供了统一的用户态加密接口(AF_ALG),允许应用程序通过套接字的方式调用内核加密原语,并广泛用于性能敏感的加解密场景。
Linux Kernel 的 Crypto API 中有一个 algif_aead 模块,负责将用户态通过 AF_ALG 套接字发送的数据交给内核 AEAD 算法进行认证加密与解密。为了优化性能,AF_ALG 的 AEAD 解密路径在 2017 年引入了一次就地(in-place)操作的优化(提交 72548b093ee3),会将 splice() 传递进来的目标文件页缓存页面直接链入可写的输出散列表(scatterlist)。而 authencesn 算法在实现 IPsec 扩展序列号(ESN)支持时,为了重排认证数据中的序列号字节,会在解密过程中将接收缓冲区偏移 assoclen + cryptlen 位置作为临时存储空间写入 4 字节数据。当 AF_ALG 通过 recvmsg() 触发解密操作时,该写入会跨越接收缓冲区边界,直接覆盖链在后面的页缓存页面,实现对任意已打开的可读文件页缓存的受控 4 字节篡改,漏洞代号 "Copy Fail"(CVE-2026-31431)。本地攻击者利用该漏洞可在无需竞争条件、无需重试的情况下,通过篡改系统上任意可读文件(如 /usr/bin/su 等 setuid 程序)的页缓存内容,直接获得 root 权限,且该写入不会触发磁盘脏页回写,可实现持久化提权等危害。
鉴于漏洞细节与 PoC 代码已公开,建议受影响用户立即采取修复措施,尽快升级到最新的内核版本或采用官方缓解方案进行防护。
漏洞名称 | Linux Kernel 本地权限提升漏洞(Copy Fail) |
|---|---|
漏洞编号 | CVE-2026-31431 |
危害等级 | 高风险 |
漏洞类型 | 内核本地权限提升 |
影响范围 | 提交范围 72548b093ee3 <= commit < a664bf3d603d |
参考链接 | https://nvd.nist.gov/vuln/detail/CVE-2026-31431 |
已知受影响的操作系统及版本:
受影响的内核提交范围:
安全版本:
官方已发布漏洞补丁及修复版本,请评估业务是否受影响后,升级至安全版本。
针对 Ubuntu、Red Hat Enterprise Linux 等用户,发行版官方暂未全部发布安全更新,请及时关注官方安全公告:
若暂时无法升级内核,可禁用 algif_aead 内核模块:
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif-aead.conf注:建议在升级前做好数据备份工作,避免出现意外。
END
更多精彩内容点击下方扫码关注哦~
关注云鼎实验室,获取更多安全情报
