All vulnerabilities
CVE-2026-97480

Linux: tty: serial: 8250: protect against NULL uart->port.dev in register

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 in68059b6e9f7292714286e2b0f5185ed2a43fccc5Also 9c78f89cf2fbae18b14c78bf172ca15d832aff15, 5cbab666721d974bfe033a12045d808936deaefd and 1 moreCVE List
Published24 Sep 2026Updated 21 Oct 2026CVE List

What fixes it

  • 68059b6e9f7292714286e2b0f5185ed2a43fccc5LinuxCVE List
  • 9c78f89cf2fbae18b14c78bf172ca15d832aff15LinuxCVE List
  • 5cbab666721d974bfe033a12045d808936deaefdLinuxCVE List
  • 941c9f84c9b6310f7aaa1c8c785dcc634ee33050LinuxCVE 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: serial: 8250: protect against NULL uart->port.dev in register

serial8250_register_8250_port() conditionally copies uart->port.dev from up->port.dev only when up->port.dev is non-NULL:

if (up->port.dev) { uart->port.dev = up->port.dev; ... }

So if both the existing uart slot and up have a NULL ->dev, uart->port.dev remains NULL. The very next ACPI companion check then dereferences it unconditionally:

if (!has_acpi_companion(uart->port.dev)) {

has_acpi_companion() reads dev->fwnode without a NULL guard (include/linux/acpi.h), so this NULL-derefs the kernel for the remaining no-dev case rather than just skipping the mctrl_gpio_init() initialisation as intended.

smatch flags the inconsistency:

drivers/tty/serial/8250/8250_core.c:767 serial8250_register_8250_port() error: 'uart->port.dev' could be null (see line 719)

Guard the call with a NULL check so register continues to work for callers that legitimately have no parent device (legacy non-OF/non-ACPI registrations).

No functional change for callers that pass a non-NULL ->dev.

Text from CVE List

Affected versions 10

  • Linuxaffected: 4a96895f74c9633b51427fd080ab70fa62b65bc4 before 68059b6e9f7292714286e2b0f5185ed2a43fccc5CVE List
  • Linuxaffected: 4a96895f74c9633b51427fd080ab70fa62b65bc4 before 9c78f89cf2fbae18b14c78bf172ca15d832aff15CVE List
  • Linuxaffected: 4a96895f74c9633b51427fd080ab70fa62b65bc4 before 5cbab666721d974bfe033a12045d808936deaefdCVE List
  • Linuxaffected: 4a96895f74c9633b51427fd080ab70fa62b65bc4 before 941c9f84c9b6310f7aaa1c8c785dcc634ee33050CVE List
  • Linuxaffected: 5.3CVE List
  • Linuxunaffected: all versions before 5.3CVE List
  • Linuxunaffected: 6.6.160 through 6.6.*CVE List
  • Linuxunaffected: 6.12.114 through 6.12.*CVE List
  • Linuxunaffected: 6.18.53 through 6.18.*CVE List
  • Linuxunaffected: 7.2CVE List

References 4