CVE-2026-98545

ata: libata-scsi: bound the ATA passthru sense descriptor writes

State
Published
Severity
Not scored
Published
Oct 18, 2026
Updated
Oct 19, 2026
Reserved
Sep 25, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

ata: libata-scsi: bound the ATA passthru sense descriptor writes

When an ATA PASS-THROUGH command to an ATAPI device fails, the sense buffer holds the device's REQUEST SENSE reply, and ata_scsi_set_passthru_sense_fields() trusts its additional length byte, sb[7], when adding the ATA Status Return descriptor. A faulty or malicious device can use that to make the kernel read and write past the 96-byte buffer in three ways:

- scsi_sense_desc_find() is passed sb[7] + 8 as the buffer length, so its clamp against sb[7] does nothing and the walk runs off the end. - A type-9 descriptor found near the end is filled in unchecked. - A new descriptor at sb[8 + len] needs len + 22 bytes, not len + 14, so len 75..82 writes up to 8 bytes past the end.

Reproduced with KASAN under qemu, with the emulated ATAPI REQUEST SENSE reply patched:

BUG: KASAN: slab-out-of-bounds in scsi_sense_desc_find+0x1a5/0x210 BUG: KASAN: slab-out-of-bounds in ata_scsi_qc_complete+0x1a15/0x1a50

Both are gone with this patch, and a valid descriptor is still filled in.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • ce477199c53e3db5a096981c565e232498ddeae4 to before c698f6deabf680f8f4a1727ef2dc80fe78815fbfAffected
  • 97981926224afe17ba3e22e0c2b7dd8b516ee574 to before d9a7147b93624660626cd7c3b1143715699e1f5cAffected
  • 97981926224afe17ba3e22e0c2b7dd8b516ee574 to before 1603abb0c50420e97cf4a1feddbd5e183c5fdf86Affected
  • 97981926224afe17ba3e22e0c2b7dd8b516ee574 to before 80fbb0bc4d11683c88f2f9d3997ea02fcada5408Affected
  • 97981926224afe17ba3e22e0c2b7dd8b516ee574 to before 80320b278fea07ffcda3f57b67b61658e0a4e1caAffected
  • 67d9d0b6ae4aaf2c4cef103a96a145c7fdfb15f8Affected
  • 6.6.44 to before 6.6.158Affected
  • 6.10.3 to before 6.11Affected
LinuxLinux
  • 6.11Affected
  • before 6.11Not affected
  • 6.6.158 through 6.6.*Not affected
  • 6.12.112 through 6.12.*Not affected
  • 6.18.55 through 6.18.*Not affected
  • 7.2.9 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.