AI Score
Confidence
Low
EPSS
Percentile
9.0%
SSVC
Exploitation
none
Automatable
no
Technical Impact
partial
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:
rq_qos_done_bio() needn’t to be called for bio based driver
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():
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
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.
[
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "1da177e4c3f4",
"lessThan": "004b8f8a6912",
"versionType": "git"
},
{
"status": "affected",
"version": "1da177e4c3f4",
"lessThan": "a647a524a467",
"versionType": "git"
}
],
"programFiles": [
"block/bio.c"
],
"defaultStatus": "unaffected"
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "unaffected",
"version": "5.14.11",
"versionType": "custom",
"lessThanOrEqual": "5.14.*"
},
{
"status": "unaffected",
"version": "5.15",
"versionType": "original_commit_for_fix",
"lessThanOrEqual": "*"
}
],
"programFiles": [
"block/bio.c"
],
"defaultStatus": "affected"
}
]