Linux 内核 iSCSI 子系统中的漏洞可让您提升权限

Linux 内核的 iSCSI 子系统代码中发现了一个漏洞 (CVE-2021-27365),该漏洞可能允许非特权本地用户在内核级别执行代码并获得系统的 root 权限。 该漏洞的工作原型可供测试。 该漏洞已在 Linux 内核更新 5.11.4、5.10.21、5.4.103、4.19.179、4.14.224、4.9.260 和 4.4.260 中修复。 Debian、Ubuntu、SUSE/openSUSE、Arch Linux 和 Fedora 发行版上提供了内核软件包更新。 RHEL 修复程序尚未发布。

该问题是由 libiscsi 模块的 iscsi_host_get_param() 函数中的错误引起的,该错误是在 2006 年开发 iSCSI 子系统期间引入的。 由于缺乏适当的大小检查,某些 iSCSI 字符串属性(例如主机名或用户名)可能会超过 PAGE_SIZE (4 KB) 值。 该漏洞可能被发送 Netlink 消息的非特权用户利用,该消息将 iSCSI 属性设置为大于 PAGE_SIZE 的值。 当通过 sysfs 或 seqfs 读取这些属性时,将调用代码将属性传递给 sprintf 函数,以将其复制到大小为 PAGE_SIZE 的缓冲区中。

发行版中漏洞的利用取决于在尝试创建 NETLINK_ISCSI 套接字时对 scsi_transport_iscsi 内核模块自动加载的支持。 在自动加载该模块的发行版上,无论是否使用 iSCSI 功能,都可能发生攻击。 同时,为了成功应用该漏洞,还需要注册至少一种 iSCSI 传输。 反过来,您可以使用 ib_iser 内核模块(当非特权用户尝试创建 NETLINK_RDMA 套接字时自动加载该模块)来注册传输。

当 rdma-core 软件包安装在系统上时,CentOS 8、RHEL 8 和 Fedora 中支持自动加载应用漏洞所需的模块,这是一些流行软件包的依赖项,并且默认安装在工作站的配置中,具有 GUI 和主机环境虚拟化的服务器系统。 同时,当使用仅在控制台模式下运行的服务器构建以及安装最小安装映像时,不会安装 rdma-core。 例如,该软件包包含在 Fedora 31 Workstation 的基本发行版中,但不包含在 Fedora 31 Server 中。 Debian 和 Ubuntu 受到的影响较小,因为 rdma-core 软件包仅在存在 RDMA 硬件的情况下加载攻击所需的内核模块。

Linux 内核 iSCSI 子系统中的漏洞可让您提升权限

作为安全解决方法,您可以禁用 libiscsi 模块的自动加载: echo "install libiscsi /bin/true" >> /etc/modprobe.d/disable-libiscsi.conf

此外,iSCSI 子系统中还修复了两个危险性较低的漏洞,这些漏洞可能导致内核数据泄漏:CVE-2021-27363(通过 sysfs 泄漏有关 iSCSI 传输描述符的信息)和 CVE-2021-27364(从越界缓冲区)。 这些漏洞可用于通过 netlink 套接字与 iSCSI 子系统进行通信,而无需必要的权限。 例如,非特权用户可以连接到 iSCSI 并发送“结束会话”命令来终止会话。

来源: opennet.ru

添加评论