{"id":"CVE-2026-98752","summary":"tty: port: fix tty_port_tty_vhangup() race","details":"In the Linux kernel, the following vulnerability has been resolved:\n\ntty: port: fix tty_port_tty_vhangup() race\n\nDrivers rely on tty_port_tty_vhangup() to synchronously hang up their\nports before tearing down resources as part of deregistration (e.g. on\nphysical disconnect).\n\nIf tty_port_tty_vhangup() races with another hangup it may however\nreturn before the port has been shut down. This is in turn can lead to\nuse-after-free and NULL-pointer dereferences in racing ioctls (including\na synchronous hangup) and in processing of racing asynchronous hangups\n(carrier loss).\n\nAdd the missing serialisation to tty_port_tty_vhangup() and\ntty_port_hangup() so that the former does not return until the port has\nbeen shut down also when there is a racing hangup.\n\nNote that serial core does not use tty_port_hangup(), but it already\nholds the port mutex when clearing port-\u003etty and shutting down the port\nin uart_hangup().","modified":"2026-10-20T02:31:07.021366913Z","published":"2026-10-18T15:47:36.877Z","database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/98xxx/CVE-2026-98752.json","cna_assigner":"Linux"},"references":[{"type":"PACKAGE","url":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"},{"type":"WEB","url":"https://git.kernel.org/stable/c/017b18addbe8dcace1a569a00d40ed1ba1e03f4c"},{"type":"WEB","url":"https://git.kernel.org/stable/c/6b7be3b9b857947e9c1338d4919d4ebd3b75e907"},{"type":"WEB","url":"https://git.kernel.org/stable/c/6d1a984afc3ca477dab3e51ec806671d443ad524"},{"type":"WEB","url":"https://git.kernel.org/stable/c/b48820de8c1a596c5b99775524dfce73c6576c5d"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/98xxx/CVE-2026-98752.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98752"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"7ca0ff9ab3218ec443a7a9ad247e4650373ed41e"},{"fixed":"6d1a984afc3ca477dab3e51ec806671d443ad524"},{"fixed":"6b7be3b9b857947e9c1338d4919d4ebd3b75e907"},{"fixed":"017b18addbe8dcace1a569a00d40ed1ba1e03f4c"},{"fixed":"b48820de8c1a596c5b99775524dfce73c6576c5d"}]},{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"2.6.31.2"},{"fixed":"2.6.32"}]},{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"4260dc792fabfd20c8644fa9414b2ae48372365f"}]}],"versions":["v2.6.31.14","v2.6.31.13","v2.6.31.12","v2.6.31.11","v2.6.31.10","v2.6.31.9","v2.6.31.8","v2.6.31.7","v2.6.31.6","v2.6.31.5","v2.6.31.4","v2.6.31.3","v2.6.31.2"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98752.json"}},{"package":{"name":"Kernel","ecosystem":"Linux"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.6.32"},{"fixed":"6.12.113"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.13.0"},{"fixed":"6.18.56"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.19.0"},{"fixed":"7.2.10"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98752.json"}}],"schema_version":"1.9.0"}