影响 Linux 内核 4.11 至(不含)已修复的 6.18 版本的本地权限提升漏洞。
该漏洞位于内核的 AF_ALG 套接字接口中——具体是 authencesn 在就地 AEAD 解密期间处理分散/聚集列表的方式。结果是:非特权用户可以在_任何可读文件的页缓存_中每次覆盖 4 字节。
用 shellcode 覆盖一个 setuid 二进制文件(如 /usr/bin/su),运行它,你就获得了 root 权限。无需竞争条件、无需内核符号、无需重新编译。相同的 172 字节 AArch64 载荷(x86-64 为 160 字节,i386 为 126 字节,ARMv7 为 138 字节)适用于各种发行版。
该漏洞由 Taeyang Lee & Theori / Xint Code 发现,并于 2026 年 4 月 29 日公开。本仓库是一个独立的、基于类的重实现,用于授权测试。
| 检查漏洞 | 利用并获取 root |
|---|---|
![]() | ![]() |
allowPrivilegeEscalation: true(Kubernetes 默认值)的容器可以逃逸。任何运行 4.11 至约 6.17.x 之间内核的系统,包括:
已修补内核:主线 ≥ 6.18.22 / 6.19.12 / 7.0,以及稳定分支的后移补丁。
# 检查系统是否易受攻击
python3 exploit.py --check
# 运行漏洞利用(需要非 root 用户)
python3 exploit.py
os.splice 需要 3.10)authencesn(hmac(sha256),cbc(aes)) 的内核/usr/bin/su;使用 --scan 查找替代品)如果检查提示算法问题,请加载所需模块:
sudo modprobe algif_aead authencesn hmac cbc
某些发行版附带临时阻止配置(/etc/modprobe.d/disable-algif_aead.conf)。脚本在 root 用户下运行时会自动移除它,你也可以手动删除。
永久修复: 更新内核。在 Ubuntu/Debian 上:
sudo apt update && sudo apt upgrade linux-image-generic
临时方案(不影响 IPsec/XFRM):
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo rmmod algif_aead 2>/dev/null
注意: IPsec/XFRM 不受此阻止影响,因为它直接使用内核加密 API,而非 AF_ALG。
容器:
主要缓解措施是使用 seccomp 配置文件阻止 AF_ALG 套接字。此外,在 Pod 安全上下文中设置 allowPrivilegeEscalation: false 以启用 no_new_privs,这会阻止内核在 execve() 时执行 setuid 位。
本工具仅用于教育和授权安全测试。请勿在你不拥有或未经书面许可的系统上运行它。