CVE-2022-49406

block: Fix potential deadlock in blk_ia_range_sysfs_show()

Medium · published February 26, 2025

CVSS v3.1
5.5
EPSS
0%
Percentile
8.8
In the wild
Unconfirmed
What it is

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().

The record
Technical detail
CVSS v3.1
5.5 · MEDIUM
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00196 · 8.8th percentile
Published
2025-02-26T02:12Z
EPSS history
Timeline
  • 26 FEB 02:12Z
    block: Fix potential deadlock in blk_ia_range_sysfs_show()
    cvelistv5