肮脏碎片漏洞会修改页面缓存,从而在任何发行版上获得 root 权限 Linux

在核心 Linux 目前已发现两个与几天前披露的 Copy Fail 漏洞性质相似的漏洞,但它们影响不同的子系统——xfrm-ESP 和 RxRPC。这一系列漏洞被命名为 Dirty Frag(也称为 Copy Fail 2)。这些漏洞允许非特权用户通过覆盖页面缓存中的进程数据来获取 root 权限。目前已有一个适用于所有当前发行版的漏洞利用程序。 Linux该漏洞在补丁发布前就已经被披露,但存在一种变通方法可以阻止该问题。

Dirty Frag 漏洞涉及两个不同的漏洞:第一个漏洞位于 xfrm-ESP 模块中,该模块用于使用 ESP(封装安全有效载荷)协议加速 IPsec 加密操作;第二个漏洞位于 RxRPC 驱动程序中,该驱动程序实现了 AF_RXRPC 套接字族和同名的 RPC 协议,运行在 UDP 协议之上。这两个漏洞单独来看都允许攻击者获得 root 权限。xfrm-ESP 中的漏洞存在于内核中。 Linux 自 2017 年 1 月起,RxRPC 漏洞一直存在;自 2023 年 6 月起,RxRPC 漏洞也一直存在。这两个问题都是由于允许直接写入页面缓存的优化造成的。

要利用 xfrm-ESP 中的漏洞,用户必须拥有创建命名空间的权限;要利用 RxRPC 中的漏洞,则必须具备加载内核模块 rxrpc.ko 的能力。例如,在 Ubuntu AppArmor 规则禁止非特权用户创建命名空间,但 rxrpc.ko 模块默认加载。某些发行版缺少 rxrpc.ko 模块,但命名空间的创建并未被阻止。发现此问题的研究人员开发了一种组合漏洞利用程序,能够同时利用这两个漏洞攻击系统,从而可以在所有主流发行版中利用此漏洞。该漏洞利用程序已被证实有效。 Ubuntu 24.04.4(内核版本 6.17.0-23)、RHEL 10.1(内核版本 6.12.0-124.49.1)、openSUSE Tumbleweed(内核版本 7.0.2-1) CentOS Stream 10,内核版本 6.12.0-224 AlmaLinux 10(内核版本 6.12.0-124.52.3)和 Fedora 44(内核版本 6.19.14-300)。

与 Copy Fail 漏洞类似,xfrm-ESP 和 RxRPC 中的问题也是由使用 splice() 函数进行原地数据解密引起的。该函数通过传递页面缓存中元素的引用,在文件描述符和管道之间传输数据,而无需进行复制。写入偏移量的计算没有进行适当的检查,以应对直接引用页面缓存元素的情况,这使得精心构造的请求能够覆盖给定偏移量处的 4 个字节,并修改页面缓存中任何文件的内容。

所有文件读取操作都会首先从页面缓存中检索内容。如果页面缓存中的数据被修改,文件读取操作将返回替换后的数据,而不是存储在驱动器上的实际信息。利用此漏洞的原理是修改带有 suid root 标志的可执行文件的页面缓存。例如,要获得 root 权限,可以读取可执行文件 /usr/bin/su 并将其放入页面缓存,然后将自己的代码替换到加载到页面缓存中的该文件的内容。随后执行“su”命令时,加载到内存中的将是页面缓存中修改后的副本,而不是驱动器上的原始可执行文件。

漏洞披露和补丁协调发布原定于5月12日进行,但由于信息泄露,漏洞信息不得不在补丁发布前公布。4月下旬,针对rxrpc、ipsec和xfrm的补丁被发布到netdev公共邮件列表,但并未提及这些补丁与该漏洞相关。5月5日,IPsec子系统维护者接受了netdev Git仓库中对xfrm-esp模块的一项修改,该修改提出了一个修复方案。该修改的描述与导致algif_aead模块中“复制失败”漏洞的问题描述基本相同。一位安全研究人员对该修复方案产生了兴趣,成功创建了一个可用的漏洞利用程序并将其发布,但他并不知道,关于该问题的信息披露已被禁止,禁令将持续到5月12日。

内核补丁更新 Linux 发行版中的内核软件包尚未发布,但已提供解决这些问题的补丁——xfrm-esp 和 rxrpc。由于尚未分配 CVE 标识符,因此难以跟踪发行版中的软件包更新。作为一种解决方法,您可以阻止加载 esp4、esp6 和 rxrpc 内核模块:sh -c "p​​rintf '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"

来源: opennet.ru

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster