Linux kernel中存在15年的漏洞

番茄系统家园 · 2022-05-25 00:25:31

Linux kernel中存在15年的漏洞

SCSI 定义了并行I/O总线和数据协议来连接硬盘驱动、打印机、扫描仪、光驱、测试设备、医疗设备等外部设备到本地计算机。近日,GRIMM在Linuxkernel SCSI(Small ComputerSystemInterface,小计算机接口)组件中发现了3个安全漏洞,分别是:CVE-2021-27363、CVE-2021-27364、CVE-2021-27365。

第一个漏洞CVE-2021-27365是iSCSI 子系统中的堆缓存溢出漏洞。通过设置iSCSIstring属性为大于1页的值,然后读取该值就可以触发该漏洞。具体来说,本特权用户可以通过drivers/scsi/libiscsi.c中的helper函数发送netlink消息到iSCSI子系统(drivers/scsi/scsi_transport_iscsi.c),该子系统负责设置于iSCSI连接相关的属性,比如hostname、username等。这些属性值的大小是由netlink消息的最大长度来限制的。由于堆溢出漏洞不确定性的本质,第一个漏洞可以用作不可靠的本地DoS。在融合了信息泄露漏洞后,该漏洞可以进一步用于本地权限提升,即攻击者利用该漏洞可以从非特权的用户账户提升权限到root。

第二个漏洞CVE-2021-27363 也是一个堆溢出漏洞,研究人员发现kernel指针泄露可以用来确定iscsi_transport结构的地址。第二个漏洞的影响稍微小一些,可以用于潜在的信息泄露。

第三个漏洞CVE-2021-27364 是libiscsi模块(drivers/scsi/libiscsi.c)中的一个越界kernel读漏洞。与第一个漏洞类似,非特权用户可以通过构造制定缓存大小的netlink消息来触发受控的越界读操作。其中多个用户控制的值是没有经过验证的,包括前一个header的大小的计算。该漏洞可以引发数据泄露,被利用后可以触发DoS条件。

这些漏洞自2006年开始就存在于系统中了,攻击者利用该漏洞可以从基本用户权限提升到root权限。此外,攻击者利用这些漏洞可以绕过KernelAddressSpace Layout Randomization (KASLR)、Supervisor Mode ExecutionProtection(SMEP)、Supervisor Mode Access Prevention (SMAP)、Kernel Page-TableIsolation(KPTI)等安全特征。漏洞影响scsi_transport_iscsikernel模块加载的所有Linux发行版,但好消息是该模块并不是默认设置。目前,Linux已经发布了漏洞补丁更新。

漏洞PoC代码参见GitHub:https://github.com/grimm-co/NotQuite0DayFriday/tree/trunk/2021.03.12-linux-iscsi

完整技术分析参见:https://blog.grimm-co.com/2021/03/new-old-bugs-in-linux-kernel.html

免责声明: 凡标注转载/编译字样内容并非本站原创,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如果你觉得本文好,欢迎推荐给朋友阅读;本文链接: https://m.nndssk.com/dngz/331599KeZwtX.html
猜你喜欢
最新应用
热门应用