SCSI定义了并行I/O总线和数据协议,用于连接硬盘驱动器、打印机、扫描仪、光驱、测试设备、医疗设备等外部设备。到本地计算机。近日,GRIMM在Linux内核SCSI(小型计算机系统接口)组件中发现了三个安全漏洞,分别为:CVE-2021-27363、CVE-2021-27364和CVE-2021-27365。第一个漏洞CVE-2021-27365是iSCSI子系统中的堆缓冲区溢出漏洞。该漏洞可以通过将iSCSI字符串属性设置为大于1页的值然后读取该值来触发。具体来说,这个特权用户可以通过drivers/scsi/libiscsi.c中的辅助函数向iSCSI子系统(drivers/scsi/scsi_transport_iscsi.c)发送netlink消息。该子系统负责设置与iSCSI连接相关的属性,如主机名、用户名等,这些属性值的大小受限于netlink消息的最大长度。由于堆溢出漏洞的不确定性,第一个漏洞可以用作不可靠的本地DoS。合并信息泄露漏洞后,该漏洞可进一步用于本地提权,即攻击者可利用该漏洞将非特权用户账户的权限提升至root。第二个漏洞CVE-2021-27363也是一个堆溢出漏洞。研究人员发现内核指针泄漏可以用来确定iscsi_transport结构的地址。第二个漏洞影响较小,可用于潜在的信息泄露。第三个漏洞CVE-2021-27364是libiscsi模块(drivers/scsi/libiscsi.c)中的越界内核读取漏洞。与第一个漏洞类似,非特权用户可以通过构造指定缓存大小的网络链接消息来触发受控的越界读取操作。这些用户控制的值中有几个未经过验证,包括计算前一个标头的大小。此漏洞可能导致数据泄漏,如果被利用可能会触发DoS条件。这些漏洞从2006年开始就存在于系统中,攻击者可以利用这些漏洞从基本用户权限升级到root权限。此外,攻击者可以利用这些漏洞绕过内核地址空间布局随机化(KASLR)、主管模式执行保护(SMEP)、主管模式访问保护(SMAP)和内核页表隔离(KPTI)等安全功能。该漏洞影响所有加载了scsi_transport_iscsi内核模块的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://securityaffairs.co/wordpress/115565/security/linux-kernel-flaws.html如有转载,请注明原文地址。
