CVE-2025-40118: Linux kernel · scsi: pm80xx: Fix array-index-out-of-of-bounds on rmmod
Affects Linux kernelSource GCVE Database
Not known to be exploited · CVSS 7.8 High · fixed in 5.15.0-1110.119~20.04.1 : patch Linux kernel soon.
Data as of 26 Oct 2026, 14:05 UTC
- EPSS
- 0.1% chance of exploitation in 30 days – higher than 5% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- Patch
- Available – fixed in 5.15.0-1110.119~20.04.1, 5.15.0-1100.109~20.04.1, 5.15.0-1100.107~20.04.2 +2
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HExploitation evidence
Disclosed: evidence found.
CVE published 12 Nov 2025
Detectable: no evidence on record.
No public nuclei template indexed
Weaponised: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.
What to do
Upgrade to a fixed release listed under Affected software.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| linux-hwe-edge | Affected
| Fixed in
|
AI-suggested
A fix has been implemented in the Linux kernel source to correct the array indexing logic in the pm80xx driver. Users should update to a kernel version that includes the commit f7b705c238d1 or later, which addresses this issue. Since this is a kernel vulnerability, applying the official kernel update from the vendor or distribution is the recommended remediation.
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.
References
- nvd.nist.gov/vuln/detail/CVE-2025-40118 (opens in a new tab)
- git.kernel.org/stable/c/251be2f6037fb7ab399f68cd7428ff274133d693 (opens in a new tab)
- git.kernel.org/stable/c/45acbf154befedd9bc135f5e031fe7855d1e6493 (opens in a new tab)
- git.kernel.org/stable/c/83ced3c206c292458e47c7fac54223abc7141585 (opens in a new tab)
- git.kernel.org/stable/c/9326a1541e1b7ed3efdbab72061b82cf01c6477a (opens in a new tab)
- git.kernel.org/stable/c/9c671d4dbfbfb0d73cfdfb706afb36d9ad60a582 (opens in a new tab)
- git.kernel.org/stable/c/d94be0a6ae9ade706d4270e740bdb4f79953a7fc (opens in a new tab)
- git.kernel.org/stable/c/e62251954a128a2d0fcbc19e5fa39e08935bb628 (opens in a new tab)
- git.kernel.org/stable/c/eef5ef400893f8e3dbb09342583be0cdc716d566 (opens in a new tab)
- ubuntu.com/security/CVE-2025-40118 (opens in a new tab)
- cve.org/CVERecord?id=CVE-2025-40118 (opens in a new tab)
- git.kernel.org/linus/251be2f6037fb7ab399f68cd7428ff274133d693 (opens in a new tab)
- ubuntu.com/security/notices/USN-8029-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-8030-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-8033-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-8033-2 (opens in a new tab)
- ubuntu.com/security/notices/USN-8033-3 (opens in a new tab)
- ubuntu.com/security/notices/USN-8034-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-8033-4 (opens in a new tab)
- ubuntu.com/security/notices/USN-8029-2 (opens in a new tab)
- ubuntu.com/security/notices/USN-8033-5 (opens in a new tab)