Bug 2348291 (CVE-2022-49406) - CVE-2022-49406 kernel: block: Fix potential deadlock in blk_ia_range_sysfs_show()
Summary: CVE-2022-49406 kernel: block: Fix potential deadlock in blk_ia_range_sysfs_sh...
Keywords:
Status: NEW
Alias: CVE-2022-49406
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Product Security DevOps Team
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2025-02-26 03:24 UTC by OSIDB Bzimport
Modified: 2025-02-26 20:19 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)

Description OSIDB Bzimport 2025-02-26 03:24:18 UTC
In the Linux kernel, the following vulnerability has been resolved:

block: Fix potential deadlock in blk_ia_range_sysfs_show()

When being read, a sysfs attribute is already protected against removal
with the kobject node active reference counter. As a result, in
blk_ia_range_sysfs_show(), there is no need to take the queue sysfs
lock when reading the value of a range attribute. Using the queue sysfs
lock in this function creates a potential deadlock situation with the
disk removal, something that a lockdep signals with a splat when the
device is removed:

[  760.703551]  Possible unsafe locking scenario:
[  760.703551]
[  760.703554]        CPU0                    CPU1
[  760.703556]        ----                    ----
[  760.703558]   lock(&q->sysfs_lock);
[  760.703565]                                lock(kn->active#385);
[  760.703573]                                lock(&q->sysfs_lock);
[  760.703579]   lock(kn->active#385);
[  760.703587]
[  760.703587]  *** DEADLOCK ***

Solve this by removing the mutex_lock()/mutex_unlock() calls from
blk_ia_range_sysfs_show().

Comment 1 Avinash Hanwate 2025-02-26 20:12:20 UTC
Upstream advisory:
https://lore.kernel.org/linux-cve-announce/2025022651-CVE-2022-49406-8378@gregkh/T


Note You need to log in before you can comment on or make changes to this bug.