usb: gadget: f_eem: Fix memory leak in eem_unwrap
- 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.10.247, 4.5, 4.10, 4.15, 4.20, 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
Summary
In the Linux kernel, the following vulnerability has been resolved: usb: gadget: f_eem: Fix memory leak in eem_unwrap The existing code did not handle the failure case of usb_ep_queue in the command path, potentially leading to memory leaks. Improve error handling to free all allocated resources on usb_ep_queue failure. This patch continues to use goto logic for error handling, as the existing error handling is complex and not easily adaptable to auto-cleanup helpers. kmemleak results: unreferenced object 0xffffff895a512300 (size 240): backtrace: slab_post_alloc_hook+0xbc/0x3a4 kmem_cache_alloc+0x1b4/0x358 skb_clone+0x90/0xd8 eem_unwrap+0x1cc/0x36c unreferenced object 0xffffff8a157f4000 (size 256): backtrace: slab_post_alloc_hook+0xbc/0x3a4 __kmem_cache_alloc_node+0x1b4/0x2dc kmalloc_trace+0x48/0x140 dwc3_gadget_ep_alloc_request+0x58/0x11c usb_ep_alloc_request+0x40/0xe4 eem_unwrap+0x204/0x36c unreferenced object 0xffffff8aadbaac00 (size 128): backtrace: slab_post_alloc_hook+0xbc/0x3a4 __kmem_cache_alloc_node+0x1b4/0x2dc __kmalloc+0x64/0x1a8 eem_unwrap+0x218/0x36c unreferenced object 0xffffff89ccef3500 (size 64): backtrace: slab_post_alloc_hook+0xbc/0x3a4 __kmem_cache_alloc_node+0x1b4/0x2dc kmalloc_trace+0x48/0x140 eem_unwrap+0x238/0x36c
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 5.10.50 · fixed in 5.10.247; From 4.4.276 · fixed in 4.5; From 4.9.276 · fixed in 4.10; From 4.14.240 · fixed in 4.15; From 4.19.198 · fixed in 4.20; From 5.4.132 · fixed in 5.5; From 5.12.17 · fixed in 5.13; From 5.13.2 · fixed in 5.14
- Linux Linux
5.14
References 7
git.kernel.org
- stable/c/a9985a88b2fc29fbe1657fe8518908e261d6889c
- stable/c/5a1628283cd9dccf1e44acfb74e77504f4dc7472
- stable/c/0ac07e476944a5e4c2b8b087dd167dec248c1bdf
- stable/c/41434488ca714ab15cb2a4d0378418d1be8052d2
- stable/c/e72c963177c708a167a7e17ed6c76320815157cf
- stable/c/0dea2e0069a7e9aa034696f8065945b7be6dd6b7
- stable/c/e4f5ce990818d37930cd9fb0be29eee0553c59d9