usb: gadget: aspeed_udc: check endpoint DMA allocation
- 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 6.1.188, 6.6.157, 6.12.110, 6.18.52, 7.2.6
- 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: aspeed_udc: check endpoint DMA allocation ast_udc_probe() allocates a coherent DMA buffer used as the backing store for endpoint buffers. ast_udc_init_ep() derives per-endpoint buffer pointers from udc->ep0_buf, so a failed allocation is dereferenced during probe. Check the allocation before endpoint setup. The existing probe error path called ast_udc_remove(), which unregisters the gadget unconditionally and is not safe before usb_add_gadget_udc() succeeds. Add a local cleanup helper for probe failures so pre-registration failures only unwind the resources that were actually initialized. This was found by a local static analysis checker for unchecked allocator returns while scanning Linux 6.16. The change was checked by applying it to current mainline and by running checkpatch. I do not have access to Aspeed UDC hardware, so no runtime testing was performed.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 055276c1320564b0192b3af323b8cc67f9b665e1 · fixed in d7ae1a48e70e9c3451b7dc7bc3896c82884bc4df; From 055276c1320564b0192b3af323b8cc67f9b665e1 · fixed in 4aaad88f857498ed1294f061f0b25d27ae891c55; From 055276c1320564b0192b3af323b8cc67f9b665e1 · fixed in 6182e708e2e1f55521c8a01d7535630ecc2d7df9; From 055276c1320564b0192b3af323b8cc67f9b665e1 · fixed in ff6e88e29965bd06f640e59acdcf0bbf04a7f55c; From 055276c1320564b0192b3af323b8cc67f9b665e1 · fixed in 9e6f57107c1886052d4baaa047a2bc3d0e91be5d; From 055276c1320564b0192b3af323b8cc67f9b665e1 · fixed in 97cee53a94be3bd4fd8fbed6071bd2f32dad1ab1
- Linux Linux
6.0
- KernelLinux
From 6.0.0 · fixed in 6.1.188; From 6.2.0 · fixed in 6.6.157; From 6.7.0 · fixed in 6.12.110; From 6.13.0 · fixed in 6.18.52; From 6.19.0 · fixed in 7.2.6