Description
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 products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
7ca0ff9ab3218ec443a7a9ad247e4650373ed41e to < ce220b4cdf62f73db0c1940f968eb33b9899fdd0affected7ca0ff9ab3218ec443a7a9ad247e4650373ed41e to < 6d1a984afc3ca477dab3e51ec806671d443ad524affected7ca0ff9ab3218ec443a7a9ad247e4650373ed41e to < 6b7be3b9b857947e9c1338d4919d4ebd3b75e907affected7ca0ff9ab3218ec443a7a9ad247e4650373ed41e to < 017b18addbe8dcace1a569a00d40ed1ba1e03f4caffected7ca0ff9ab3218ec443a7a9ad247e4650373ed41e to < b48820de8c1a596c5b99775524dfce73c6576c5daffected4260dc792fabfd20c8644fa9414b2ae48372365faffected2.6.31.2 to < 2.6.32affected
Linux Linux
Default version status: affected
2.6.32affected0 to < 2.6.32unaffected6.6.160 to ≤ 6.6.*unaffected6.12.113 to ≤ 6.12.*unaffected6.18.56 to ≤ 6.18.*unaffected7.2.10 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
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 ↗