Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: usb: storage: realtek_cr: fix use-after-free on disconnect realtek_cr_destructor() calls timer_delete() before the chip containing the timer is freed. The timer callback may still be running and can rearm itself, resulting in a use-after-free. Use timer_shutdown_sync() to wait for the callback and prevent further rearming. Do this unconditionally because ss_en may be changed after the timer is armed. Move timer_setup() into init_realtek_cr() so the timer is initialized before any failure path can invoke the destructor. Found by static analysis.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected e931830bb877e2aad9a1be83506f9bdb26c91e4e before c1e7e35100efffba7c9e1dfa76519d6cd323ba3d; affected e931830bb877e2aad9a1be83506f9bdb26c91e4e before 524d4257f741cd95eb85e2817c9c890928fcfef7; affected e931830bb877e2aad9a1be83506f9bdb26c91e4e before 7c4e2f964c65dea4ea22386799d5fb10ef1e3e54; affected e931830bb877e2aad9a1be83506f9bdb26c91e4e before cae9dbba6adae21a04a3bd045e07b489847ff2c6; affected e931830bb877e2aad9a1be83506f9bdb26c91e4e before 4ffee1aebb0c0ffcda9faffd17834ea9b00d42cc |
| Linux / Linux | affected 3.1; unaffected 0 before 3.1; unaffected 6.6.160 through 6.6.*; unaffected 6.12.112 through 6.12.*; unaffected 6.18.51 through 6.18.*; unaffected 7.2.5 through 7.2.*; unaffected 7.3 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/c1e7e35100efffba7c9e1dfa76519d6cd323ba3d
- https://git.kernel.org/stable/c/524d4257f741cd95eb85e2817c9c890928fcfef7
- https://git.kernel.org/stable/c/7c4e2f964c65dea4ea22386799d5fb10ef1e3e54
- https://git.kernel.org/stable/c/cae9dbba6adae21a04a3bd045e07b489847ff2c6
- https://git.kernel.org/stable/c/4ffee1aebb0c0ffcda9faffd17834ea9b00d42cc