CVE-2026-97441 in Linux
摘要
由 VulDB • 2026-09-24
在 Linux 内核中,已修复以下漏洞:
ata: ahci: 如果 BAR 大小不足以容纳声明的端口数,则探测失败
当 AHCI 控制器在 BIOS 中被禁用时,其 HOST_CAP 寄存器可能包含虚假值(例如 0xFFFFFFFF)。
由于 CAP.NP(端口数量)是一个基于零计数的 5 位寄存器字段,因此 0x1f 的值表示 32 个端口。如果 CAP.NP 声明的端口数超过了映射 BAR 区域在物理上能够容纳的数量,那么访问超出 BAR 边界的端口寄存器会导致内核恐慌(kernel panic)。
在 ahci_init_one() 中添加验证逻辑,以检查 BAR 大小是否足以支持 CAP.NP 中声明的端口数量。该检查计算所需的 MMIO 大小为:
required_size = 0x100 (全局寄存器) + max_ports * 0x80
如果 required_size 超过实际的 BAR 大小,则探测失败并返回 -ENODEV,从而防止内核恐慌并提供清晰的错误消息。
[cassel: commit log]
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.