CVE-2021-47412

Source
https://nvd.nist.gov/vuln/detail/CVE-2021-47412
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2021-47412.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2021-47412
Downstream
Related
Published
2024-05-21T15:15:26Z
Modified
2025-09-25T15:27:14Z
Severity
  • 5.5 (Medium) CVSS_V3 - CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H CVSS Calculator
Summary
[none]
Details

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

block: don't call rqqosops->done_bio if the bio isn't tracked

rq_qos framework is only applied on request based driver, so:

1) rqqosdone_bio() needn't to be called for bio based driver

2) rqqosdone_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->bibdev->bddisk->queue, which may be gone since request queue refcount may not be held in above two cases

2) q->rqqos may be freed in blkcleanupqueue() when calling into _rqqosdone_bio()

Fix the potential kernel panic by not calling rqqosops->donebio if the bio isn't tracked. This way is safe because both iocrqosdonebio() and blkcgiolatencydone_bio() are nop if the bio isn't tracked.

References

Affected packages