loop: Fix use-after-free issues
- 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 5.15.104, 6.1.21, 6.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
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
In the Linux kernel, the following vulnerability has been resolved: loop: Fix use-after-free issues do_req_filebacked() calls blk_mq_complete_request() synchronously or asynchronously when using asynchronous I/O unless memory allocation fails. Hence, modify loop_handle_cmd() such that it does not dereference 'cmd' nor 'rq' after do_req_filebacked() finished unless we are sure that the request has not yet been completed. This patch fixes the following kernel crash: Unable to handle kernel NULL pointer dereference at virtual address 0000000000000054 Call trace: css_put.42938+0x1c/0x1ac loop_process_work+0xc8c/0xfd4 loop_rootcg_workfn+0x24/0x34 process_one_work+0x244/0x558 worker_thread+0x400/0x8fc kthread+0x16c/0x1e0 ret_from_fork+0x10/0x20
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From bc07c10a3603a5ab3ef01ba42b3d41f9ac63d1b6 · fixed in 407badf73ec9fb0d5744bf2ca1745c1818aa222f; From bc07c10a3603a5ab3ef01ba42b3d41f9ac63d1b6 · fixed in e3fda704903f6d1fc351412f1bc6620333959ada; From bc07c10a3603a5ab3ef01ba42b3d41f9ac63d1b6 · fixed in 6917395c4667cfb607ed8bf1826205a59414657c; From bc07c10a3603a5ab3ef01ba42b3d41f9ac63d1b6 · fixed in 9b0cb770f5d7b1ff40bea7ca385438ee94570eec
- Linux Linux
4.4
- KernelLinux
From 4.4.0 · fixed in 5.15.104; From 5.16.0 · fixed in 6.1.21; From 6.2.0 · fixed in 6.2.8