漏洞概述
Linux是免费开源、类Unix的操作系统内核,诞生于1991年,芬兰大学生Linus Benedict Torvalds因不满商用Unix昂贵、Minix系统受限,自行开发并公开了Linux初代内核源码;随后全球开发者通过开源社区共同参与迭代完善,遵循GPL开源协议允许自由使用、修改和分发。它继承Unix稳定、多用户、多任务、高性能的特性,兼具免费、可定制、安全可靠的优势,逐步衍生出Ubuntu、CentOS、Debian、RedHat等众多发行版,如今垄断服务器、云计算、容器、嵌入式、安卓底层、物联网及开发运维领域,成为互联网和信息技术世界的基石级操作系统。
近日,银河哈希通过安全监测发现Linux存在Linux内核本地提权漏洞 Dirty Frag 。Dirty Frag 漏洞源于Linux内核两处逻辑缺陷叠加,分别为xfrm-ESP漏洞与RxRPC漏洞:内核splice零拷贝机制在转发只读文件数据时,未对页缓存页做权限隔离与校验,直接将只读文件的页缓存页挂载到网络skb的frag碎片链表中;xfrm-ESP协议模块处理IPsec ESP加密时,错误信任skb碎片缓冲区为私有可写内存,直接原地篡改本应受保护的只读页缓存,绕过文件只读权限实现任意只读文件内存篡改;后续内核引入的RxRPC远程过程调用模块又存在同类型碎片页引用管理缺陷,形成第二条独立利用路径,当系统防护机制拦截xfrm-ESP利用链路时,攻击者仍可通过RxRPC漏洞复用相同零拷贝与页缓存篡改逻辑,低权限本地用户借此可控改写关键系统文件内存镜像,最终实现稳定本地提权。该漏洞使用两条利用链,双保险通杀,近几年的Linux系统基本都在覆盖范围之内,且漏洞利用难度极低,影响极大。
影响范围
理论影响:
xfrm-ESP:内核 commit cac2661c53f3(2017-01-17)起至最新主线(约 9 年影响范围)
RxRPC:内核 commit 2dc334f1a63a(2023-06)起至最新主线
已验证影响版本:
- Ubuntu 24.04.4: 6.17.0-23-generic
- RHEL 10.1: 6.12.0-124.49.1.el10_1.x86_64
- openSUSE Tumbleweed: 7.0.2-1-default
- CentOS Stream 10: 6.12.0-224.el10.x86_64
- AlmaLinux 10: 6.12.0-124.52.3.el10_1.x86_64
- Fedora 44: 6.19.14-300.fc44.x86_64
受影响版本(图源github)漏洞复现
银河哈希已成功复现该漏洞
Linux内核本地提权漏洞 Dirty Frag解决方案
暂无官方补丁
ESP 与 RxRPC 已有内核补丁提交,但发行版未全面推送更新
临时防护:禁用或删除 xfrm-ESP 与 RxRPC 模块;以下命令为删除模块命令
sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; true"
参考文献
https://github.com/V4bel/dirtyfrag