Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: tty: port: fix tty_port_tty_vhangup() race Drivers rely on tty_port_tty_vhangup() to synchronously hang up their ports before tearing down resources as part of deregistration (e.g. on physical disconnect). If tty_port_tty_vhangup() races with another hangup it may however return before the port has been shut down. This is in turn can lead to use-after-free and NULL-pointer dereferences in racing ioctls (including a synchronous hangup) and in processing of racing asynchronous hangups (carrier loss). Add the missing serialisation to tty_port_tty_vhangup() and tty_port_hangup() so that the former does not return until the port has been shut down also when there is a racing hangup. Note that serial core does not use tty_port_hangup(), but it already holds the port mutex when clearing port->tty and shutting down the port in uart_hangup().
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 7ca0ff9ab3218ec443a7a9ad247e4650373ed41e before ce220b4cdf62f73db0c1940f968eb33b9899fdd0; affected 7ca0ff9ab3218ec443a7a9ad247e4650373ed41e before 6d1a984afc3ca477dab3e51ec806671d443ad524; affected 7ca0ff9ab3218ec443a7a9ad247e4650373ed41e before 6b7be3b9b857947e9c1338d4919d4ebd3b75e907; affected 7ca0ff9ab3218ec443a7a9ad247e4650373ed41e before 017b18addbe8dcace1a569a00d40ed1ba1e03f4c; affected 7ca0ff9ab3218ec443a7a9ad247e4650373ed41e before b48820de8c1a596c5b99775524dfce73c6576c5d; affected 4260dc792fabfd20c8644fa9414b2ae48372365f; affected 2.6.31.2 before 2.6.32 |
| Linux / Linux | affected 2.6.32; unaffected 0 before 2.6.32; unaffected 6.6.160 through 6.6.*; unaffected 6.12.113 through 6.12.*; unaffected 6.18.56 through 6.18.*; unaffected 7.2.10 through 7.2.*; unaffected 7.3 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/ce220b4cdf62f73db0c1940f968eb33b9899fdd0
- https://git.kernel.org/stable/c/6d1a984afc3ca477dab3e51ec806671d443ad524
- https://git.kernel.org/stable/c/6b7be3b9b857947e9c1338d4919d4ebd3b75e907
- https://git.kernel.org/stable/c/017b18addbe8dcace1a569a00d40ed1ba1e03f4c
- https://git.kernel.org/stable/c/b48820de8c1a596c5b99775524dfce73c6576c5d