memstick: ms_block: destroy io_queue workqueue on removal
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.1.189, 6.6.158, 6.12.112, 6.18.54, 7.2.8
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: memstick: ms_block: destroy io_queue workqueue on removal msb_init_disk() creates the per-card ordered workqueue msb->io_queue with alloc_ordered_workqueue(). It is torn down with destroy_workqueue() only on the init error path; msb_remove() never destroys it. msb_stop() merely flushes the queue, and neither msb_data_clear() nor put_disk() free it. As a result every card insert/remove cycle leaks the workqueue and its kworker, exhausting kernel memory over repeated cycles. Destroy the workqueue in msb_remove() after the disk has been removed and the queue drained.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 0ab30494bc4f3bc1ea4659b7c5d97c5218554a63 · fixed in 0ff795163f37109a134b5a421558530f8d091544; From 0ab30494bc4f3bc1ea4659b7c5d97c5218554a63 · fixed in 19c3da6621a253f1f8b937ed91bc22330a930d9c; From 0ab30494bc4f3bc1ea4659b7c5d97c5218554a63 · fixed in 9a2e7cdc0880e735aff0968ee402f2c92a992b9b; From 0ab30494bc4f3bc1ea4659b7c5d97c5218554a63 · fixed in 6611f78ec3fd4b33a00bfda20725b254a22979f6; From 0ab30494bc4f3bc1ea4659b7c5d97c5218554a63 · fixed in f222bb8c30cf5699c560b29179ff2bddcac1f950; From 0ab30494bc4f3bc1ea4659b7c5d97c5218554a63 · fixed in 90af7fde083e1b22c349c3a8b1626728e44e474c
- Linux Linux
3.12
- KernelLinux
From 3.12.0 · fixed in 6.1.189; From 6.2.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.112; From 6.13.0 · fixed in 6.18.54; From 6.19.0 · fixed in 7.2.8