Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: usb: cdns3: gadget: Use-after-free during failed initialization and exit of cdnsp gadget In the __cdnsp_gadget_init() and cdnsp_gadget_exit() functions, the gadget structure (pdev->gadget) was freed before its endpoints. The endpoints are linked via the ep_list in the gadget structure. Freeing the gadget first leaves dangling pointers in the endpoint list. When the endpoints are subsequently freed, this results in a use-after-free. Fix: By separating the usb_del_gadget_udc() operation into distinct "del" and "put" steps, cdnsp_gadget_free_endpoints() can be executed prior to the final release of the gadget structure with usb_put_gadget(). A patch similar to bb9c74a5bd14("usb: dwc3: gadget: Free gadget structure only after freeing endpoints").
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 8bc1901ca7b07d864fca11461b3875b31f949765 before 0cf9a50af91fbdac3849f8d950e883a3eaa3ecea; affected 8bc1901ca7b07d864fca11461b3875b31f949765 before 37158ce6ba964b62d1e3eebd11f03c6900a52dd1; affected 8bc1901ca7b07d864fca11461b3875b31f949765 before ea37884097a0931abb8e11e40eacfb25e9fdb5e9; affected 8bc1901ca7b07d864fca11461b3875b31f949765 before 9c52f01429c377a2d32cafc977465f37b5384f77; affected 8bc1901ca7b07d864fca11461b3875b31f949765 before fdf573c517627a96f5040f988e9b21267806be5c; affected 8bc1901ca7b07d864fca11461b3875b31f949765 before 87c5ff5615dc0a37167e8faf3adeeddc6f1344a3 |
| Linux / Linux | affected 5.3; unaffected 0 before 5.3; unaffected 5.15.197 through 5.15.*; unaffected 6.1.159 through 6.1.*; unaffected 6.6.117 through 6.6.*; unaffected 6.12.58 through 6.12.*; unaffected 6.17.8 through 6.17.*; unaffected 6.18 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/0cf9a50af91fbdac3849f8d950e883a3eaa3ecea
- https://git.kernel.org/stable/c/37158ce6ba964b62d1e3eebd11f03c6900a52dd1
- https://git.kernel.org/stable/c/ea37884097a0931abb8e11e40eacfb25e9fdb5e9
- https://git.kernel.org/stable/c/9c52f01429c377a2d32cafc977465f37b5384f77
- https://git.kernel.org/stable/c/fdf573c517627a96f5040f988e9b21267806be5c
- https://git.kernel.org/stable/c/87c5ff5615dc0a37167e8faf3adeeddc6f1344a3