CVE-2025-40118

scsi: pm80xx: Fix array-index-out-of-of-bounds on rmmod

HIGH
7.8
CVSS Score
Published: November 12, 2025 at 10:23 AM UTC
Updated: October 19, 2026 at 09:10 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH7.8
Exploit prediction
EPSS 0.2%

Description

In the Linux kernel, the following vulnerability has been resolved: scsi: pm80xx: Fix array-index-out-of-of-bounds on rmmod Since commit f7b705c238d1 ("scsi: pm80xx: Set phy_attached to zero when device is gone") UBSAN reports: UBSAN: array-index-out-of-bounds in drivers/scsi/pm8001/pm8001_sas.c:786:17 index 28 is out of range for type 'pm8001_phy [16]' on rmmod when using an expander. For a direct attached device, attached_phy contains the local phy id. For a device behind an expander, attached_phy contains the remote phy id, not the local phy id. I.e. while pm8001_ha will have pm8001_ha->chip->n_phy local phys, for a device behind an expander, attached_phy can be much larger than pm8001_ha->chip->n_phy (depending on the amount of phys of the expander). E.g. on my system pm8001_ha has 8 phys with phy ids 0-7. One of the ports has an expander connected. The expander has 31 phys with phy ids 0-30. The pm8001_ha->phy array only contains the phys of the HBA. It does not contain the phys of the expander. Thus, it is wrong to use attached_phy to index the pm8001_ha->phy array for a device behind an expander. Thus, we can only clear phy_attached for devices that are directly attached.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

5.10.237 ≤ v < 5.10.2465.15.181 ≤ v < 5.15.1955.4.293 ≤ v < 5.4.3016.1.136 ≤ v < 6.1.1566.12.26 ≤ v < 6.12.536.14.5 ≤ v < 6.156.6.89 ≤ v < 6.6.11205b512879eab41faa515b67fa3896d0005e979090f9802f174227f553959422f844eeb9ba72467fe1d8f9378cb4800c18e20d80ecd605b2b93e87a0330e482dfb8f27d22f518695d4bcb5e7f4c6cb08a5.10.2375.15.1815.4.2935b512879eab41faa515b67fa3896d5e979096.1.1366.12.266.14.56.156.6.89722026c010fa75bcf9e2373aff1d7930a3d7e3cfa862d24e1fc3ab1b5e5f20878d2898cea346d0ecbc2140c8136200b4437e1abc0fb659968cb9baabf7b705c238d1483f0a766e2b20010f176e5c0fb7
Vendor states this is fixed in 251be2f6037fb7ab399f68cd7428ff274133d693 (fixed)
Vendor states this is fixed in 45acbf154befedd9bc135f5e031fe7855d1e6493 (fixed)
Vendor states this is fixed in 83ced3c206c292458e47c7fac54223abc7141585 (fixed)
Vendor states this is fixed in 9326a1541e1b7ed3efdbab72061b82cf01c6477a (fixed)
Vendor states this is fixed in 9c671d4dbfbfb0d73cfdfb706afb36d9ad60a582 (fixed)
Vendor states this is fixed in d94be0a6ae9ade706d4270e740bdb4f79953a7fc (fixed)
Vendor states this is fixed in e62251954a128a2d0fcbc19e5fa39e08935bb628 (fixed)
Vendor states this is fixed in eef5ef400893f8e3dbb09342583be0cdc716d566 (fixed)
Vendor states this is fixed in 5.10.246 (unaffected)
Vendor states this is fixed in 5.15.195 (unaffected)
Vendor states this is fixed in 5.4.301 (unaffected)
Vendor states this is fixed in 6.1.156 (unaffected)
Vendor states this is fixed in 6.12.53 (unaffected)
Vendor states this is fixed in 6.15 (unaffected)
Vendor states this is fixed in 6.17.3 (unaffected)
Vendor states this is fixed in 6.18 (unaffected)
Vendor states this is fixed in 6.6.112 (unaffected)

Remediation

No guide yet

No remediation guidance has been written for this CVE yet, and no fixed version or vendor advisory is recorded against it.

CVSS

7.8HIGHLinux
Vector?

Quick Info

StatusDEFERRED

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card