CVE-2023-53823

CVE-2023-53823

High · published December 9, 2025

CVSS v3.1
7.8
EPSS
0%
Percentile
7.5
In the wild
Unconfirmed
What it is

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

block/rq_qos: protect rq_qos apis with a new lock

commit 50e34d78815e ("block: disable the elevator int del_gendisk")

move rq_qos_exit() from disk_release() to del_gendisk(), this will

introduce some problems:

1) If rq_qos_add() is triggered by enabling iocost/iolatency through

cgroupfs, then it can concurrent with del_gendisk(), it's not safe to

write 'q->rq_qos' concurrently.

2) Activate cgroup policy that is relied on rq_qos will call

rq_qos_add() and blkcg_activate_policy(), and if rq_qos_exit() is

called in the middle, null-ptr-dereference will be triggered in

blkcg_activate_policy().

3) blkg_conf_open_bdev() can call blkdev_get_no_open() first to find the

disk, then if rq_qos_exit() from del_gendisk() is done before

rq_qos_add(), then memory will be leaked.

This patch add a new disk level mutex 'rq_qos_mutex':

1) The lock will protect rq_qos_exit() directly.

2) For wbt that doesn't relied on blk-cgroup, rq_qos_add() can only be

called from disk initialization for now because wbt can't be

destructed until rq_qos_exit(), so it's safe not to protect wbt for

now. Hoever, in case that rq_qos dynamically destruction is supported

in the furture, this patch also protect rq_qos_add() from wbt_init()

directly, this is enough because blk-sysfs already synchronize

writers with disk removal.

3) For iocost and iolatency, in order to synchronize disk removal and

cgroup configuration, the lock is held after blkdev_get_no_open()

from blkg_conf_open_bdev(), and is released in blkg_conf_exit().

In order to fix the above memory leak, disk_live() is checked after

holding the new lock.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00183 · 7.5th percentile
Published
2025-12-09T21:17Z
References (2)
EPSS history
Timeline
  • 09 DEC 01:29Z
    block/rq_qos: protect rq_qos apis with a new lock
    cvelistv5