CVE-2025-40118
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.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
CVE-2025-40118: In the Linux kernel's pm80xx SCSI driver, an out-of-bounds array access occurs on rmmod when an expander is attached, due to using the remote phy ID to index the local phy array.
Vulnerability
Overview
The vulnerability resides in the Linux kernel's pm8001 SCSI driver. When a device is behind an expander (e.g, the attached_phy field contains the remote phy ID on the expander, not the local phy ID on the host bus adapter (HBA). The pm8001_ha->phy array only holds the HBA's phys (e.g., 8 entries). Using attached_phy to index this array when the device is behind an expander can cause an out-of-bounds access, as reported by UBSAN with an index of 28 on a system where the HBA has only 8 phys [1].
Exploitation
Conditions
The bug is triggered during module removal (rmmod) when the driver attempts to clear phy_attached for devices connected through an expander. No special permissions are required beyond the ability to load/unload the driver. The attack surface is local; a user with access to the system could cause the kernel to perform an invalid memory access, potentially leading to a crash or denial of service.
Impact
An attacker who can trigger rmmod of the pm8001 driver when an expander is connected can cause a kernel crash due to the out-of-bounds array access. This results in a denial of service. The issue does not appear to allow privilege escalation or arbitrary code execution based on the description.
Mitigation
The fix ensures that the phy_attached field is only cleared for directly attached devices, not for those behind an expander, thus avoiding the out-of-bounds access on rmmod. The patch has been applied to the stable kernel tree [2] and is included in subsequent stable releases. Users should update their systems to the latest stable kernel version to mitigate this vulnerability.
AI Insight generated on May 19, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected products
1Patches
8d94be0a6ae9a45acbf154befeef5ef4008939c671d4dbfbfe62251954a129326a1541e1b83ced3c206c2251be2f6037fVulnerability mechanics
Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
8- git.kernel.org/stable/c/251be2f6037fb7ab399f68cd7428ff274133d693nvd
- git.kernel.org/stable/c/45acbf154befedd9bc135f5e031fe7855d1e6493nvd
- git.kernel.org/stable/c/83ced3c206c292458e47c7fac54223abc7141585nvd
- git.kernel.org/stable/c/9326a1541e1b7ed3efdbab72061b82cf01c6477anvd
- git.kernel.org/stable/c/9c671d4dbfbfb0d73cfdfb706afb36d9ad60a582nvd
- git.kernel.org/stable/c/d94be0a6ae9ade706d4270e740bdb4f79953a7fcnvd
- git.kernel.org/stable/c/e62251954a128a2d0fcbc19e5fa39e08935bb628nvd
- git.kernel.org/stable/c/eef5ef400893f8e3dbb09342583be0cdc716d566nvd
News mentions
0No linked articles in our index yet.