CVEvulnerability
CVE-2021-47412
5.5 MEDIUM
Official page ↗
- Status
- Modified
- Published
- 2024-05-21
- Last modified
- 2026-08-04
- Assigner
- 416baaa9-dc9f-4396-8d5f-8c081fb06d67
- CVSS 3.1 (416baaa9-dc9f-4396-8d5f-8c081fb06d67)
- 7.8 HIGH — CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- CVSS 3.1 ([email protected])
- 5.5 MEDIUM — CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Description
In the Linux kernel, the following vulnerability has been resolved:
block: don't call rq_qos_ops->done_bio if the bio isn't tracked
rq_qos framework is only applied on request based driver, so:
1) rq_qos_done_bio() needn't to be called for bio based driver
2) rq_qos_done_bio() needn't to be called for bio which isn't tracked,
such as bios ended from error handling code.
Especially in bio_endio():
1) request queue is referred via bio->bi_bdev->bd_disk->queue, which
may be gone since request queue refcount may not be held in above two
cases
2) q->rq_qos may be freed in blk_cleanup_queue() when calling into
__rq_qos_done_bio()
Fix the potential kernel panic by not calling rq_qos_ops->done_bio if
the bio isn't tracked. This way is safe because both ioc_rqos_done_bio()
and blkcg_iolatency_done_bio() are nop if the bio isn't tracked.
Affected configurations
• linux linux kernel (< 5.10.241)
• linux linux kernel (>= 5.11 < 5.14.11)
• linux linux kernel 5.15
References
- https://git.kernel.org/stable/c/004b8f8a691205a93d9e80d98b786b2b97424d6e Patch
- https://git.kernel.org/stable/c/a647a524a46736786c95cdb553a070322ca096e3 Patch
- https://git.kernel.org/stable/c/db60edbfff332a6a5477c367af8125f034570989 Patch
- https://git.kernel.org/stable/c/004b8f8a691205a93d9e80d98b786b2b97424d6e Patch
- https://git.kernel.org/stable/c/a647a524a46736786c95cdb553a070322ca096e3 Patch
- https://lists.debian.org/debian-lts-announce/2025/10/msg00007.html lists.debian.org