aoe: fix the potential use-after-free problem in more places
- 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 4.19.323, 5.4.285, 5.10.227, 5.15.168, 6.1.113, and 5 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: partial
Summary
In the Linux kernel, the following vulnerability has been resolved: aoe: fix the potential use-after-free problem in more places For fixing CVE-2023-6270, f98364e92662 ("aoe: fix the potential use-after-free problem in aoecmd_cfg_pkts") makes tx() calling dev_put() instead of doing in aoecmd_cfg_pkts(). It avoids that the tx() runs into use-after-free. Then Nicolai Stange found more places in aoe have potential use-after-free problem with tx(). e.g. revalidate(), aoecmd_ata_rw(), resend(), probe() and aoecmd_cfg_rsp(). Those functions also use aoenet_xmit() to push packet to tx queue. So they should also use dev_hold() to increase the refcnt of skb->dev. On the other hand, moving dev_put() to tx() causes that the refcnt of skb->dev be reduced to a negative value, because corresponding dev_hold() are not called in revalidate(), aoecmd_ata_rw(), resend(), probe(), and aoecmd_cfg_rsp(). This patch fixed this issue.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From ad80c34944d7175fa1f5c7a55066020002921a99 · fixed in 12f7b89dd72b25da4eeaa22097877963cad6418e; From 1a54aa506b3b2f31496731039e49778f54eee881 · fixed in a786265aecf39015418e4f930cc1c14603a01490; From faf0b4c5e00bb680e8e43ac936df24d3f48c8e65 · fixed in f63461af2c1a86af4217910e47a5c46e3372e645; From 7dd09fa80b0765ce68bfae92f4e2f395ccf0fba4 · fixed in 07b418d50ccbbca7e5d87a3a0d41d436cefebf79; From 74ca3ef68d2f449bc848c0a814cefc487bf755fa · fixed in bc2cbf7525ac288e07d465f5a1d8cb8fb9599254; From eb48680b0255a9e8a9bdc93d6a55b11c31262e62 · fixed in acc5103a0a8c200a52af7d732c36a8477436a3d3; From f98364e926626c678fb4b9004b75cacf92ff0662 · fixed in 89d9a69ae0c667e4d9d028028e2dcc837bae626f; From f98364e926626c678fb4b9004b75cacf92ff0662 · fixed in 8253a60c89ec35c8f36fb2cc08cdf854c7a3eb58; From f98364e926626c678fb4b9004b75cacf92ff0662 · fixed in 6d6e54fc71ad1ab0a87047fd9c211e75d86084a3; From 4.19.311 · fixed in 4.19.323; From 5.4.273 · fixed in 5.4.285; From 5.10.214 · fixed in 5.10.227; From 5.15.153 · fixed in 5.15.168; From 6.1.83 · fixed in 6.1.113; From 6.6.23 · fixed in 6.6.55; From 6.7.11 · fixed in 6.8; From 6.8.2 · fixed in 6.9
- Linux Linux
6.9
- KernelLinux
fixed in 4.19.323; From 4.20.0 · fixed in 5.4.285; From 5.5.0 · fixed in 5.10.227; From 5.11.0 · fixed in 5.15.168; From 5.16.0 · fixed in 6.1.113; From 6.2.0 · fixed in 6.6.55; From 6.7.0 · fixed in 6.10.14; From 6.9.0 · fixed in 6.11.3
References 9
git.kernel.org
- stable/c/12f7b89dd72b25da4eeaa22097877963cad6418e
- stable/c/a786265aecf39015418e4f930cc1c14603a01490
- stable/c/f63461af2c1a86af4217910e47a5c46e3372e645
- stable/c/07b418d50ccbbca7e5d87a3a0d41d436cefebf79
- stable/c/bc2cbf7525ac288e07d465f5a1d8cb8fb9599254
- stable/c/acc5103a0a8c200a52af7d732c36a8477436a3d3
- stable/c/89d9a69ae0c667e4d9d028028e2dcc837bae626f
- stable/c/8253a60c89ec35c8f36fb2cc08cdf854c7a3eb58
- stable/c/6d6e54fc71ad1ab0a87047fd9c211e75d86084a3