CVE-2023-53823: block/rq_qos: protect rq_qos apis with a new lock
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.
Security readout for executives and security teams
Plain-English summary
CVE-2023-53823 is a Linux kernel race condition in block I/O quality-of-service handling. Under specific timing, cgroup block QoS configuration can collide with disk removal, causing unsafe state changes, a null pointer dereference, or a memory leak. Public sources do not provide a CVSS score or confirm exploitation.
Executive priority
Treat as a kernel reliability and availability issue with unclear exploitability. Prioritize patching on Linux hosts using block cgroup QoS or dynamic storage operations, but avoid emergency escalation unless vendor guidance adds stronger impact or exploitation evidence.
Technical view
The flaw affects Linux kernel rq_qos APIs after rq_qos_exit() moved to del_gendisk(). Concurrent rq_qos_add() from iocost or iolatency cgroupfs activation can race with rq_qos_exit(), corrupt q->rq_qos state, trigger blkcg_activate_policy() null dereference, or leak memory. The fix adds a disk-level rq_qos_mutex and disk_live() checks.
Likely exposure
Exposure is most relevant to Linux systems running affected kernel versions with block cgroup QoS features such as iocost or iolatency. Risk depends on kernel build, distribution backports, and whether disk removal can occur during related cgroup configuration.
Exploitation context
The source bundle does not show KEV listing, public exploitation, exploit maturity, or attacker prerequisites. The described failure requires a timing-sensitive concurrency condition involving disk teardown and rq_qos-related cgroup configuration.
Researcher notes
The public record is technically specific but incomplete for risk scoring. No CVSS, CWE, KEV, exploit status, or distribution-specific fixed versions are provided. Analysis should focus on rq_qos_add(), rq_qos_exit(), blkcg policy activation, disk removal timing, and vendor backport confirmation.
Mitigation direction
Apply a Linux kernel or distribution update containing the referenced stable fixes.
Check vendor advisories for backported fixes before judging by upstream version alone.
Avoid concurrent iocost or iolatency reconfiguration during disk removal until patched.
Monitor Linux kernel stable guidance for affected branch-specific updates.
Validation and detection
Inventory Linux kernel versions across servers and appliances.
Confirm whether block cgroup iocost or iolatency policies are enabled.
Verify installed kernels include the referenced rq_qos_mutex fix commits or vendor backports.
Review logs for unexplained kernel null dereference or block layer faults during disk removal.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2023-53823 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
0CVSS vectors
3Timeline events
0ADP providers
3Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Dec 9, 2025, 01:29 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.