Skip to main content

Linux Kernel CVE-2026-89586

| EUVDEUVD-2026-76498 HIGH
2026-09-11 Linux GHSA-4wqv-wrmf-6h4v
8.2
CVSS 3.1 · Vendor: Linux
Share

Severity by source

Vendor (Linux) PRIMARY
8.2 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:H
vuln.today AI
5.5 MEDIUM

Local trigger only via kernel storage driver on specific hardware; no confidentiality or integrity impact; TRIM permanently broken constitutes high availability impact.

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:L/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
High

Lifecycle Timeline

7
Metadata Corrected
Sep 13, 2026 - 09:40 vuln.today
tag: Denial Of Service added
Metadata Corrected
Sep 13, 2026 - 09:40 vuln.today
tag: Information Disclosure removed
Analysis Generated
Sep 13, 2026 - 08:57 vuln.today
CVSS changed
Sep 13, 2026 - 07:22 NVD
8.2 (HIGH)
Patch available
Sep 11, 2026 - 21:18 EUVD
CVE Published
Sep 11, 2026 - 19:44 cve.org
UNKNOWN (no severity yet)
CVE Published
Sep 11, 2026 - 19:44 cve.org
HIGH 8.2

DescriptionCVE.org

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.

AnalysisAI

TRIM/discard is completely broken on 4Kn (4096-byte native sector) block devices in the Linux kernel's libata-scsi layer, causing every ATA DSM TRIM command to fail with 'Parameter list length error' and trigger WARN_ON() splats on each attempt. The bug is in ata_scsi_write_same_xlat(): ata_format_dsm_trim_descr() caps its output at 2048 bytes (ATA_SCSI_RBUF_SIZE), but the caller compares this return value against the logical sector size - on 4Kn devices (sector_size=4096), this equality check always fails and every TRIM is rejected. …

Unlock full vulnerability intelligence

  • Risk assessment & exploitation conditions
  • Attack chain visualization
  • Remediation with exact patch versions
  • Threat intelligence from 22 sources
  • Personal watchlist & email alerts

Free forever · No credit card required

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata

Access
technique details hidden
Delivery
technique details hidden
Exploit
technique details hidden
Execution
technique details hidden
Persist
technique details hidden
Impact
technique details hidden

Vulnerability AssessmentAI

Exploitation This issue manifests only when all three conditions are simultaneously present: (1) a block device with a logical sector size exceeding 2048 bytes is attached - almost exclusively 4Kn native-sector devices without 512-byte emulation; (2) the filesystem is configured to issue TRIM via the 'discard' mount option or fstrim is executed; and (3) the running kernel is between version 4.9 and the fixed releases (6.12.109, 6.18.50, 7.2.4, 7.3-rc1). … Additional conditions and limiting factors are described in the full assessment.
Risk Assessment The supplied CVSS vector (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:H, score 8.2) substantially misrepresents this vulnerability on every meaningful axis: there is no network attack surface, no unauthenticated remote trigger, and no confidentiality impact whatsoever. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in.
Exploit Scenario Full exploit scenario with step-by-step reproduction available after sign-in.
Remediation Apply the vendor-released stable kernel patches: upgrade to Linux 6.12.109, 6.18.50, 7.2.4, or 7.3-rc1 (or later). … Detailed patch versions, workarounds, and compensating controls in full report.

Recommended ActionAI

Within 24 hours, identify and catalog Linux systems running kernel versions 6.12.0-6.12.108, 6.18.0-6.18.49, or 7.2.0-7.2.3 paired with 4Kn storage devices. …

Sign in for detailed remediation steps and compensating controls.

Threat intelligence, references, and detailed analysis are available after sign-in.

Share

CVE-2026-89586 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy