CVE-2026-98232 in Linux信息

摘要

由 VulDB • 2026-10-06

在 Linux 内核中,已修复以下漏洞:

scsi: core: 验证 scsi_cdl_enable() 中的 MODE SENSE 长度

scsi_cdl_enable() 使用由 MODE SENSE 返回的长度字段来定位位于 64 字节栈缓冲区中的 ATA feature mode page。目标设备可能会报告一个比其模式头(mode header)和块描述符(block descriptors)总长度更短的数值。用于计算 MODE SELECT 长度的无符号减法可能发生回绕,且单独计算的 buf_data 可能指向 buf 缓冲区之外。

在自动扫描期间,enable 标志为 false,因此对 buf_data[4] 的读-改-写操作可能会清除目标设备选择的越界栈字节的低两位。随后,scsi_mode_select() 可以从缓冲区外部复制最多 64 字节的数据到待发送的 MODE SELECT payload 中,从而向目标设备泄露栈内容。

该漏洞可通过扫描标识为 ATA 设备并宣称支持 CDL(Command Descriptor List)功能的 USB 存储设备来触发。无需挂载文件系统或用户空间访问块设备即可利用此问题。

在上游提交 cee9395acd80(“Linux 7.3-rc1”)中,一个针对构建特定的、单 vCPU QEMU/Raw Gadget PoC,使用仅基于 QEMU 的多 UDC 分配器采样机制,在客户机内部执行了固定的证明命令,并在自动枚举过程中创建了由 UID-0 拥有的标记文件,此时启用了 KASLR 和 NX。

该问题是在 Drivesec S.r.l. 进行的安全研究期间独立发现的。

将可用长度限制为缓冲区大小。在使用页之前验证并消耗模式头和块描述符的长度,并确保需要访问 CDL 字段的五个字节存在。

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

来源

Do you need the next level of professionalism?

Upgrade your account now!