padata: avoid UAF for reorder_work
- 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.5, 5.6, 5.10.235, 5.15.179, 6.1.129, and 3 more
- 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: padata: avoid UAF for reorder_work Although the previous patch can avoid ps and ps UAF for _do_serial, it can not avoid potential UAF issue for reorder_work. This issue can happen just as below: crypto_request crypto_request crypto_del_alg padata_do_serial ... padata_reorder // processes all remaining // requests then breaks while (1) { if (!padata) break; ... } padata_do_serial // new request added list_add // sees the new request queue_work(reorder_work) padata_reorder queue_work_on(squeue->work) ... <kworker context> padata_serial_worker // completes new request, // no more outstanding // requests crypto_del_alg // free pd <kworker context> invoke_padata_reorder // UAF of pd To avoid UAF for 'reorder_work', get 'pd' ref before put 'reorder_work' into the 'serial_wq' and put 'pd' ref until the 'serial_wq' finish.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From bbefa1dd6a6d53537c11624752219e39959d04fb · fixed in f4f1b1169fc3694f9bc3e28c6c68dbbf4cc744c0; From bbefa1dd6a6d53537c11624752219e39959d04fb · fixed in 4c6209efea2208597dbd3e52dc87a0d1a8f2dbe1; From bbefa1dd6a6d53537c11624752219e39959d04fb · fixed in 7000507bb0d2ceb545c0a690e0c707c897d102c2; From bbefa1dd6a6d53537c11624752219e39959d04fb · fixed in 6f45ef616775b0ce7889b0f6077fc8d681ab30bc; From bbefa1dd6a6d53537c11624752219e39959d04fb · fixed in 8ca38d0ca8c3d30dd18d311f1a7ec5cb56972cac; From bbefa1dd6a6d53537c11624752219e39959d04fb · fixed in a54091c24220a4cd847d5b4f36d678edacddbaf0; From bbefa1dd6a6d53537c11624752219e39959d04fb · fixed in dd7d37ccf6b11f3d95e797ebe4e9e886d0332600; From 5.4.19 · fixed in 5.5; From 5.5.3 · fixed in 5.6
- Linux Linux
5.6
- KernelLinux
From 5.6.0 · fixed in 5.10.235; From 5.11.0 · fixed in 5.15.179; From 5.16.0 · fixed in 6.1.129; From 6.2.0 · fixed in 6.6.76; From 6.7.0 · fixed in 6.12.13; From 6.13.0 · fixed in 6.13.2
References 7
git.kernel.org
- stable/c/f4f1b1169fc3694f9bc3e28c6c68dbbf4cc744c0
- stable/c/4c6209efea2208597dbd3e52dc87a0d1a8f2dbe1
- stable/c/7000507bb0d2ceb545c0a690e0c707c897d102c2
- stable/c/6f45ef616775b0ce7889b0f6077fc8d681ab30bc
- stable/c/8ca38d0ca8c3d30dd18d311f1a7ec5cb56972cac
- stable/c/a54091c24220a4cd847d5b4f36d678edacddbaf0
- stable/c/dd7d37ccf6b11f3d95e797ebe4e9e886d0332600