All vulnerabilities
CVE-2026-98752

Linux: tty: port: fix tty_port_tty_vhangup() race

Linux LinuxOperating systems
CVSS
NoneNot scored
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.17%Chance of exploitation activity in the next 30 days, higher than 5% of CVEs. Scored 23 Oct 2026FIRST EPSS
Fixed in6d1a984afc3ca477dab3e51ec806671d443ad524Also 6b7be3b9b857947e9c1338d4919d4ebd3b75e907, 017b18addbe8dcace1a569a00d40ed1ba1e03f4c and 1 moreCVE List
Published18 Oct 2026Updated 21 Oct 2026CVE List

What fixes it

  • 6d1a984afc3ca477dab3e51ec806671d443ad524LinuxCVE List
  • 6b7be3b9b857947e9c1338d4919d4ebd3b75e907LinuxCVE List
  • 017b18addbe8dcace1a569a00d40ed1ba1e03f4cLinuxCVE List
  • 2.6.32LinuxCVE List

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

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().

Text from CVE List

Affected versions 14

  • Linuxaffected: 7ca0ff9ab3218ec443a7a9ad247e4650373ed41e before ce220b4cdf62f73db0c1940f968eb33b9899fdd0CVE List
  • Linuxaffected: 7ca0ff9ab3218ec443a7a9ad247e4650373ed41e before 6d1a984afc3ca477dab3e51ec806671d443ad524CVE List
  • Linuxaffected: 7ca0ff9ab3218ec443a7a9ad247e4650373ed41e before 6b7be3b9b857947e9c1338d4919d4ebd3b75e907CVE List
  • Linuxaffected: 7ca0ff9ab3218ec443a7a9ad247e4650373ed41e before 017b18addbe8dcace1a569a00d40ed1ba1e03f4cCVE List
  • Linuxaffected: 7ca0ff9ab3218ec443a7a9ad247e4650373ed41e before b48820de8c1a596c5b99775524dfce73c6576c5dCVE List
  • Linuxaffected: 4260dc792fabfd20c8644fa9414b2ae48372365fCVE List
  • Linuxaffected: 2.6.31.2 before 2.6.32CVE List
  • Linuxaffected: 2.6.32CVE List
  • Linuxunaffected: all versions before 2.6.32CVE List
  • Linuxunaffected: 6.6.160 through 6.6.*CVE List
  • Linuxunaffected: 6.12.113 through 6.12.*CVE List
  • Linuxunaffected: 6.18.56 through 6.18.*CVE List
  • Linuxunaffected: 7.2.10 through 7.2.*CVE List
  • Linuxunaffected: 7.3CVE List

References 5