← All Advisories
Reported from OT-Advisories.com as of

CVE-2026-89586

Last refreshed2026-10-17

Status: UPDATED  |  Advisory ID: CVE-2026-89586

Key Details

CVECVE-2026-89586
CVSS Score / Version
8.2 (High) / CVSS v3.1
Updated2026-10-16
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:H
CVSS Prose
attack vector is network; attack complexity is low; privileges required is none; user interaction is none; scope is unchanged; confidentiality impact is low; integrity impact is none; availability impact is high.
Affected products
Linux Kernel

Affected Products, Subsystems & Sectors

VendorProductAffected VersionsPatch Status
LinuxLinux Kernel
SubsystemsOT Supporting Infrastructure
SectorsAll Sectors

What to Know

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

ata: libata-scsi: fix DSM TRIM for sector sizes larger than 2048 bytes

ata_scsi_write_same_xlat() translates a SCSI WRITE SAME command with the

UNMAP bit set into an ATA DATA SET MANAGEMENT TRIM command. The TRIM

descriptor is built by ata_format_dsm_trim_descr() into the 2048-byte

ata_scsi_rbuf staging buffer, and the number of bytes copied is compared

against the logical sector size by the caller:

size = ata_format_dsm_trim_descr(scmd, trmax, block, n_block);

if (size != len) /* len == sdp->sector_size */

goto invalid_param_len;

ata_format_dsm_trim_descr() clamps the copy length to ATA_SCSI_RBUF_SIZE

(2048). On a device whose logical sector size exceeds that (e.g. a 4Kn

device, where sector_size == 4096) the function can never return more than

2048, while the caller expects it to return sector_size. The comparison

therefore always fails, so every TRIM is rejected with "Parameter list

length error" and WARN_ON() splats on each attempt. TRIM / discard is

thus completely broken on such devices.

The descriptor was incorrectly sized from the logical sector size. A DSM

TRIM payload is a list of 512-byte pages, each holding up to

ATA_MAX_TRIM_RNUM (64) LBA Range Entries, and is independent of the logical

sector size. The Block Limits VPD page already advertises a single such

page as the maximum WRITE SAME length (65535 * ATA_MAX_TRIM_RNUM logical

blocks), so the block layer never sends a request that needs more than one

page.

Emit exactly one 512-byte page, independent of the logical sector size,

and transfer only that page (COUNT == 1). For a 512-byte-sector device

this is unchanged; devices with larger logical sectors now work instead of

failing every TRIM. (NVD)

What to Do

Monitor Linux's web page for any future patch releases.

References

SourceReference
NVDhttps://nvd.nist.gov/vuln/detail/CVE-2026-89586
CVEhttps://www.cve.org/CVERecord?id=CVE-2026-89586
Report compilation © 2026 OT-Advisories.com  ·  CC BY 4.0  ·  Source materials remain the property of their respective publishers as cited.