What happened
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
Affected versions
Linux: 3b545788505b2e2883aff13bdddeacaf88942a4f through before a9985a88b2fc29fbe1657fe8518908e261d6889c (git); 4249d6fbc10fd997abdf8a1ea49c0389a0edf706 through before 5a1628283cd9dccf1e44acfb74e77504f4dc7472 (git); 4249d6fbc10fd997abdf8a1ea49c0389a0edf706 through before 0ac07e476944a5e4c2b8b087dd167dec248c1bdf (git); 4249d6fbc10fd997abdf8a1ea49c0389a0edf706 through before 41434488ca714ab15cb2a4d0378418d1be8052d2 (git); 4249d6fbc10fd997abdf8a1ea49c0389a0edf706 through before e72c963177c708a167a7e17ed6c76320815157cf (git); 4249d6fbc10fd997abdf8a1ea49c0389a0edf706 through before 0dea2e0069a7e9aa034696f8065945b7be6dd6b7 (git); 4249d6fbc10fd997abdf8a1ea49c0389a0edf706 through before e4f5ce990818d37930cd9fb0be29eee0553c59d9 (git); d55a236f1bab102e353ea5abb7b7b6ff7e847294 (git); 8e275d3d5915a8f7db3786e3f84534bb48245f4c (git); 3680a6ff9a9ccd3c664663da04bef2534397d591 (git); d654be97e1b679616e3337b871a9ec8f31a88841 (git); 8bdef7f21cb6e53c0ce3e1cbcb05975aa0dd0fe9 (git); 77d7f071883cf2921a7547f82e41f15f7f860e35 (git); a55093941e38113dd6f5f5d5d2705fec3018f332 (git); 5.10.50 through before 5.10.247 (semver); 4.4.276 through before 4.5 (semver); 4.9.276 through before 4.10 (semver); 4.14.240 through before 4.15 (semver); 4.19.198 through before 4.20 (semver); 5.4.132 through before 5.5 (semver); 5.12.17 through before 5.13 (semver); 5.13.2 through before 5.14 (semver); 5.14 Fixed: See vendor advisory.
Why it matters
Review the vendor advisory and exposure of the affected product to determine operational impact.
Detection & mitigation
- Apply vendor-provided updates or mitigations.
- Review affected product exposure and access logs.
Public PoC references
No public PoC reference has passed the current publication threshold.