CVE-2024-26935: scsi: core: Fix unremoved procfs host directory regression

Published May 1, 2024
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

scsi: core: Fix unremoved procfs host directory regression

Commit fc663711b944 ("scsi: core: Remove the /proc/scsi/${procname} directory earlier") fixed a bug related to modules loading/unloading, by adding a call to scsiprochostdirrm() on scsiremovehost(). But that led to a potential duplicate call to the hostdirrm() routine, since it's also called from scsihostdevrelease(). That triggered a regression report, which was then fixed by commit be03df3d4bfe ("scsi: core: Fix a procfs host directory removal regression"). The fix just dropped the hostdirrm() call from devrelease().

But it happens that this proc directory is created on scsihostalloc(), and that function "pairs" with scsihostdevrelease(), while scsiremovehost() pairs with scsiaddhost(). In other words, it seems the reason for removing the proc directory on devrelease() was meant to cover cases in which a SCSI host structure was allocated, but the call to scsiaddhost() didn't happen. And that pattern happens to exist in some error paths, for example.

Syzkaller causes that by using USB raw gadget device, error'ing on usb-storage driver, at usbstorprobe2(). By checking that path, we can see that the BadDevice label leads to a scsihostput() after a SCSI host allocation, but there's no call to scsiaddhost() in such path. That leads to messages like this in dmesg (and a leak of the SCSI host proc structure):

usb-storage 4-1:87.51: USB Mass Storage device detected procdirentry 'scsi/usb-storage' already registered WARNING: CPU: 1 PID: 3519 at fs/proc/generic.c:377 procregister+0x347/0x4e0 fs/proc/generic.c:376

The proper fix seems to still call scsiprochostdirrm() on devrelease(), but guard that with the state check for SHOSTCREATED; there is even a comment in scsihostdevrelease() detailing that: such conditional is meant for cases where the SCSI host was allocated but there was no calls to {add,remove}host(), like the usb-storage case.

This is what we propose here and with that, the error path of usb-storage does not trigger the warning anymore.

Other sources

In the Linux kernel, the following vulnerability has been resolved:

scsi: core: Fix unremoved procfs host directory regression

The Linux kernel CVE team has assigned CVE-2024-26935 to this issue.

Upstream advisory: https://lore.kernel.org/linux-cve-announce/2024050124-CVE-2024-26935-8b4e@gregkh/T

Red Hat

Affected Software

25 affected componentsFixes available
debian/linux
5.10.223-15.10.234-16.1.129-16.1.135-16.12.25-1
redhat/kernel<5.4.274
5.4.274
redhat/kernel<5.10.215
5.10.215
redhat/kernel<5.15.154
5.15.154
redhat/kernel<6.1.84
6.1.84
redhat/kernel<6.6.24
6.6.24
redhat/kernel<6.7.12
6.7.12
redhat/kernel<6.8.3
6.8.3
redhat/kernel<6.9
6.9
Linux Linux kernel>=5.4.238<5.4.274
Linux Linux kernel>=5.10.176<5.10.215
Linux Linux kernel>=5.15.104<5.15.154
Linux Linux kernel>=6.1.21<6.1.84
Linux Linux kernel>=6.2.8<6.3
Linux Linux kernel>=6.3.1<6.6.24
Linux Linux kernel>=6.7<6.7.12
Linux Linux kernel>=6.8<6.8.3
Linux Linux kernel=6.3
Linux Linux kernel=6.3-rc3
Linux Linux kernel=6.3-rc4
Linux Linux kernel=6.3-rc5
Linux Linux kernel=6.3-rc6
Linux Linux kernel=6.3-rc7
Linux Linux kernel=6.9-rc1
Debian Debian Linux=10.0

Event History

May 1, 2024
CVE Published
via MITRE·05:17 AM
Data Sourced
via MITRE·05:17 AM
Description
Data Sourced
via NVD·06:15 AM
Description
Data Sourced
via NVD·06:15 AM
RemedySeverityAffected Software
Data Sourced
via Red Hat·06:00 PM
DescriptionSeverityAffected Software
Jun 8, 2024
Data Sourced
via Launchpad·01:10 AM
Description
Apr 28, 2025
Data Sourced
via Ubuntu·02:21 PM
RemedyDescriptionSeverityAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2024-26935?

CVE-2024-26935 has been assigned a severity based on its impact on the Linux kernel and the potential risks associated with unremoved procfs host directory regression.

2

How do I fix CVE-2024-26935?

To fix CVE-2024-26935, update your Linux kernel to a version that is not affected, such as 5.4.274, 5.10.215, 5.15.154, 6.1.84, 6.6.24, 6.7.12, 6.8.3, 6.9, or appropriate versions from Debian.

3

Which versions of the Linux kernel are affected by CVE-2024-26935?

CVE-2024-26935 affects versions of the Linux kernel prior to 5.4.274, 5.10.215, 5.15.154, 6.1.84, 6.6.24, 6.7.12, 6.8.3, and 6.9.

4

What is the nature of CVE-2024-26935 vulnerability?

CVE-2024-26935 is related to improper handling of procfs host directories in the Linux kernel, which could lead to inconsistencies during module loading and unloading.

5

Where can I find more information about CVE-2024-26935?

For more specific details about CVE-2024-26935, refer to the release notes or security updates provided by the Linux kernel maintainers.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203