2026年4月底至5月下旬,Linux内核安全社区经历了近年来最密集的本地提权漏洞披露潮——短短三周内,连续5个高危LPE(Local Privilege Escalation)漏洞被公开,涵盖加密子系统、网络栈、进程调试接口等多个内核模块。这些漏洞的共同特点是:本地普通用户即可利用,可直接获得root权限。
本文将对这5个漏洞逐一进行简要梳理,帮助大家快速了解本月内核安全态势。
01 Copy Fail (CVE-2026-31431)
- 漏洞模块:加密子系统(AF_ALG / algif_aead)
- 漏洞原理:攻击者通过组合AF_ALG socket、splice()系统调用与authencesn模板,触发对page cache的受控写入,从而篡改SUID-root二进制文件(如/usr/bin/su)的页缓存内容,实现本地提权。
关键特征:
缓解措施:
禁用algif_aead模块或阻断非特权用户创建AF_ALG socket
02 Dirty Frag (CVE-2026-43284, CVE-2026-43500)
- 漏洞模块:xfrm-ESP(esp4/esp6)+ RxRPC
- 漏洞原理:xfrm-ESP和RxRPC模块各自存在类似Copy Fail的page cache写入漏洞。攻击者可构造特定的网络数据包,触发内核向任意可读文件的页缓存写入受控的4字节数据。两个漏洞可链式利用——xfrm-ESP漏洞覆盖范围广但部分发行版受AppArmor限制,RxRPC漏洞无需命名空间权限但模块非默认加载,组合后可在主流发行版上实现提权。
关键特征:
缓解措施:
禁用esp4、esp6、rxrpc模块
03 Fragnesia(CVE-2026-46300)
- 漏洞原理:DirtyFrag漏洞家族的独立新变种。内核在网络栈内多条路径下进行SKB(Socket Buffer)复制时丢失
SKBFL_SHARED_FRAG标记,导致ESP原地解密时意外篡改内核页缓存中只读文件的内容。攻击者通过创建本地socket,篡改/usr/bin/su等关键文件的页缓存获取root权限。
关键特征:
缓解措施:
与DirtyFrag一致,禁用esp4、esp6、rxrpc模块
04 ptrace提权(CVE-2026-46333)
- 漏洞原理:
ptrace_may_access()函数在Linux 4.10-rc1(2016年11月)中引入逻辑错误,当特权进程短暂丢弃凭证时,错误地允许非特权进程访问。攻击者结合pidfd_getfd()系统调用,可从特权进程复制文件描述符并绕过权限检查。
关键特征:
- 可窃取SSH主机私钥、
/etc/shadow密码哈希 - 已验证Debian 13、Ubuntu 24.04/26.04、Fedora 43/44
缓解措施:
设置 kernel.yama.ptrace_scope = 2
05 PinTheft(CVE-2026-43494,RDS零拷贝双重释放)
- 漏洞模块:RDS(Reliable Datagram Sockets)零拷贝发送路径
- 漏洞原理:
rds_message_zcopy_from_user()在固定用户态内存页后,若后续页面触发错误,错误处理路径会先释放已固定页面,但后续RDS消息清理又会再次释放,形成double-free。攻击者先将匿名内存页注册为io_uring固定缓冲区,通过多次故意失败的RDS发送耗尽引用计数,获得悬空指针后覆写SUID-root程序的页缓存,最终获取root shell。
关键特征:
- 利用门槛较高:需加载RDS模块 + 启用io_uring + 存在SUID-root文件 + x86_64平台
- 仅Arch Linux默认加载RDS模块,其他发行版受影响范围有限
缓解措施:
禁用RDS模块(blacklist rds)
总结与建议
本月5个漏洞的攻击面汇总如下:
通用修复建议:
- 立即升级内核:各主流发行版已发布安全更新,请及时更新并重启
- 容器环境加固:通过seccomp策略阻断容器内创建AF_ALG socket等危险操作
- 轮换敏感凭证:鉴于部分漏洞可窃取SSH密钥和密码哈希,建议轮换相关凭证
这三周的漏洞潮再次提醒我们:内核中潜伏多年的旧代码、复杂的网络栈交互、以及子系统之间的组合利用,仍然是本地提权漏洞的高发区域。及时更新内核、减小攻击面,始终是最有效的防御策略。
Assisted-by: DeepSeek V4 Pro