In the Linux kernel, the following vulnerability has been resolved:
scsi: ses: Handle enclosure with just a primary component gracefully
This reverts commit 3fe97ff3d949 ("scsi: ses: Don't attach if enclosure has no components") and introduces proper handling of case where there are no detected secondary components, but primary component (enumerated in num_enclosures) does exist. That fix was originally proposed by Ding Hui <[email protected]>.
Completely ignoring devices that have one primary enclosure and no secondary one results in ses_intf_add() bailing completely
scsi 2:0:0:254: enclosure has no enumerated components scsi 2:0:0:254: Failed to bind enclosure -12ven in valid configurations such
even on valid configurations with 1 primary and 0 secondary enclosures as below:
# sg_ses /dev/sg0 3PARdata SES 3321 Supported diagnostic pages: Supported Diagnostic Pages [sdp] [0x0] Configuration (SES) [cf] [0x1] Short Enclosure Status (SES) [ses] [0x8] # sg_ses -p cf /dev/sg0 3PARdata SES 3321 Configuration diagnostic page: number of secondary subenclosures: 0 generation code: 0x0 enclosure descriptor list Subenclosure identifier: 0 [primary] relative ES process id: 0, number of ES processes: 1 number of type descriptor headers: 1 enclosure logical identifier (hex): 20000002ac02068d enclosure vendor: 3PARdata product: VV rev: 3321 type descriptor header and text list Element type: Unspecified, subenclosure id: 0 number of possible elements: 1
The changelog for the original fix follows
===== We can get a crash when disconnecting the iSCSI session, the call trace like this:
[ffff00002a00fb70] kfree at ffff00000830e224 [ffff00002a00fba0] ses_intf_remove at ffff000001f200e4 [ffff00002a00fbd0] device_del at ffff0000086b6a98 [ffff00002a00fc50] device_unregister at ffff0000086b6d58 [ffff00002a00fc70] __scsi_remove_device at ffff00000870608c [ffff00002a00fca0] scsi_remove_device at ffff000008706134 [ffff00002a00fcc0] __scsi_remove_target at ffff0000087062e4 [ffff00002a00fd10] scsi_remove_target at ffff0000087064c0 [ffff00002a00fd70] __iscsi_unbind_session at ffff000001c872c4 [ffff00002a00fdb0] process_one_work at ffff00000810f35c [ffff00002a00fe00] worker_thread at ffff00000810f648 [ffff00002a00fe70] kthread at ffff000008116e98
In ses_intf_add, components count could be 0, and kcalloc 0 size scomp, but not saved in edev->component[i].scratch
In this situation, edev->component[0].scratch is an invalid pointer, when kfree it in ses_intf_remove_enclosure, a crash like above would happen The call trace also could be other random cases when kfree cannot catch the invalid pointer
We should not use edev->component[] array when the components count is 0 We also need check index when use edev->component[] array in ses_enclosure_data_process =====
CVSS Details
- CVSS 3.1 Base Score: 8.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon Linux Ami 2 | — | Upgrade perfUpgrade python-perfUpgrade kernel-tools-develUpgrade kernel-develUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-tools-debuginfoUpgrade bpftoolUpgrade kernel-toolsUpgrade bpftool-debuginfoUpgrade kernel-livepatch-4.14.309-231.529Upgrade python-perf-debuginfoUpgrade kernelUpgrade perf-debuginfoUpgrade kernel-livepatch-5.10.173-154.642Upgrade kernel-debuginfo-common-x86_64Upgrade kernel-headersUpgrade kernel-debuginfo | May 20, 2026 | May 20, 2026 |
| Debian | — | Upgrade linux | Sep 22, 2025 | Sep 22, 2025 |
| Huawei Euleros 2_0_sp10 | — | Upgrade kernel-toolsUpgrade kernelUpgrade kernel-tools-libsUpgrade python3-perfUpgrade kernel-abi-stablelists | Mar 17, 2026 | Mar 16, 2026 |
| Huawei Euleros 2_0_sp13 | — | Upgrade bpftoolUpgrade python3-perfUpgrade kernel-tools-libsUpgrade kernel-abi-stablelistsUpgrade kernel-toolsUpgrade kernel | Mar 10, 2026 | Mar 10, 2026 |
| Redhat_linux | — | No solution exists | Jul 17, 2026 | Sep 18, 2025 |
| Ubuntu | — | Upgrade linuxUpgrade linux-intel-iotg-5.15Upgrade linux-raspiUpgrade linux-ibmUpgrade linux-hwe-5.15Upgrade linux-azure-5.4Upgrade linux-awsUpgrade linux-azureUpgrade linux-gcp-5.15Upgrade linux-aws-fipsUpgrade linux-iotUpgrade linux-azure-fipsUpgrade linux-lowlatency-hwe-5.15Upgrade linux-hwe-5.4Upgrade linux-gcp-fipsUpgrade linux-realtimeUpgrade linux-aws-5.4Upgrade linux-azure-fde-5.15Upgrade linux-kvmUpgrade linux-ibm-5.4Upgrade linux-intel-iotgUpgrade linux-gcpUpgrade linux-nvidiaUpgrade linux-intel-iot-realtimeUpgrade linux-bluefieldUpgrade linux-nvidia-tegraUpgrade linux-oracle-5.15Upgrade linux-oracle-5.4Upgrade linux-riscv-5.15Upgrade linux-gkeopUpgrade linux-gcp-5.4Upgrade linux-oracleUpgrade linux-fipsUpgrade linux-azure-5.15Upgrade linux-raspi-5.4Upgrade linux-xilinx-zynqmpUpgrade linux-lowlatencyUpgrade linux-gkeUpgrade linux-nvidia-tegra-5.15Upgrade linux-aws-5.15 | Sep 26, 2025 | Sep 18, 2025 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Oct 15, 2025 | Sep 18, 2025 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub