linux3系统存在的漏洞,Linux kernel中存在15年的漏洞

9f68969735fb50e453a0d9bdbbd50b2a.png

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

第一个漏洞CVE-2021-27365是iSCSI 子系统中的堆缓存溢出漏洞。通过设置iSCSI string 属性为大于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权限。此外,攻击者利用这些漏洞可以绕过Kernel Address Space Layout Randomization (KASLR)、Supervisor Mode Execution Protection (SMEP)、Supervisor Mode Access Prevention (SMAP)、Kernel Page-Table Isolation (KPTI)等安全特征。漏洞影响scsi_transport_iscsi kernel模块加载的所有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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值