
Exploit for CVE-2026-31431, a Linux kernel authencesn vulnerability enabling local privilege escalation to root and container escape via AF_ALG and splice().
Linux 内核加密模块 authencesn在 2017 年引入了一处针对 AEAD(认证加密)操作的原地(in-place)优化,该优化导致在特定条件下,页缓存(page cache)中的只读页面可以被错误地放入可写目标散列表(scatterlist)。攻击者通过 AF_ALG 套接字暴露的内核加密 API,结合 splice()系统调用,利用上述逻辑缺陷实现对 setuid 二进制文件(如 /usr/bin/su)页缓存的 4 字节任意写入,从而篡改程序逻辑,获取 root shell。
整个利用过程为直线逻辑,无需竞争窗口(race window),无需内核特定偏移,无需预装任何特殊工具。
本地提权至 root:任意本地普通用户账户可无条件提权为 root。
容器逃逸:Kubernetes / 容器环境中,页缓存为宿主机共享,容器内攻击者可突破容器边界,危及宿主节点及同节点其他租户。
CI/CD 环境沦陷:GitHub Actions、GitLab Runner、Jenkins Agent 等执行不可信代码的 CI 环境,攻击者可通过恶意 PR 直接获取 Runner 宿主机的 root 权限。
云多租户环境:Notebook、Serverless、Agent 沙箱等执行用户代码的云服务,租户可提权为宿主机 root。
漏洞持续近十年:问题代码于 2017 年引入,此后所有 Linux 发行版均受影响。
2017 年至补丁发布前构建的所有 Linux 内核版本,涵盖:
| 发行版 | 受影响内核版本 |
| Ubuntu 24.04 LTS | 6.17.0-1007-aws 及以下 |
| Amazon Linux 2023 | 6.18.8-9.213.amzn2023 及以下 |
| RHEL 14.3 | 6.12.0-124.45.1.el10_1 及以下 |
| SUSE 16 | 6.12.0-160000.9-default 及以下 |
| Debian / Arch / Fedora / Rocky / Alma / Oracle | 同期内核版本均受影响 |
升级至包含 mainline commit a664bf3d603d的内核版本,各主流发行版正在陆续发布修复版本:
# Ubuntu / Debian
apt update && apt upgrade linux-image-$(uname -r)
# RHEL / CentOS / Rocky / Alma
dnf update kernel
# Amazon Linux
yum update kernel
# SUSE
zypper update kernel-default
升级后重启系统使新内核生效,并通过以下命令验证是否包含修复 commit:
grep -r "a664bf3d603d" /proc/version 2>/dev/null || uname -r
# 验证是否包含修复commit或对比发行版官方公告中的修复版本号
禁用 algif_aead内核模块可阻断漏洞利用路径:
# 永久禁用(重启后生效)
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
# 立即卸载(当前会话生效)
rmmod algif_aead 2>/dev/null || true
禁用 algif_aead 的影响评估:
不影响:dm-crypt/LUKS、kTLS、IPsec/XFRM、OpenSSL/GnuTLS/NSS 默认构建、SSH、内核密钥环加密——这些组件直接使用内核加密 API,不经过 AF_ALG。
可能影响:显式启用了 afalg引擎的 OpenSSL、部分嵌入式加密卸载路径、直接绑定 aead/skcipher/hash 套接字的应用。可通过 lsof | grep AF_ALG或 ss -xa检查当前系统是否有进程使用 AF_ALG。