dpaa2-switch: fix the error path in dpaa2_switch_rx()
- 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.222, 6.1.189, 6.6.158, 6.12.111, 6.18.53
- 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: dpaa2-switch: fix the error path in dpaa2_switch_rx() In case of an error in dpaa2_switch_rx(), the dpaa2_switch_free_fd() function is called in order to free the FD. This is incorrect since the dpaa2_switch_free_fd() is intended to be used on Tx frame descriptors, meaning that it expects in the software annotation area of the FD data to find a valid skb pointer on which to call dev_kfree_skb(). Fix this by extracting the dma_unmap_page() from dpaa2_switch_build_linear_skb() directly into the dpaa2_switch_rx() function. This allows us to directly use free_pages() in case of an error before an SKB was created and kfree_skb() afterwards.
Timeline
- CVE published
- First seen by cve.now
- Record last updated
Affected versions
- Linux Linux
From 613c0a5810b79610db8535c3816b0c149675f8ee · fixed in 791068c962469af0090e1a1ee63657fb9eef40db; From 613c0a5810b79610db8535c3816b0c149675f8ee · fixed in ee54f8d7e642c44cfcc2dcb390b4c50e145d81b8; From 613c0a5810b79610db8535c3816b0c149675f8ee · fixed in 259ad6093204b999d41e7e6d0ad90ef9a71a44ab; From 613c0a5810b79610db8535c3816b0c149675f8ee · fixed in f4ceb8e3d6d5becb4cda7a7098a8638e18c835a1; From 613c0a5810b79610db8535c3816b0c149675f8ee · fixed in fa232b4496cb59503ae5108c756cbe10e59b0bc3; From 613c0a5810b79610db8535c3816b0c149675f8ee · fixed in 74c1c9f5c0c30bbd0c2cf87b6e3507e7ea46c13d
- Linux Linux
5.13
- KernelLinux
fixed in 5.15.222; From 5.16.0 · fixed in 6.1.189; From 6.2.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.111; From 6.13.0 · fixed in 6.18.53