CVE-2026-23472

serial: core: fix infinite loop in handle_tx() for PORT_UNKNOWN

State
Published
Severity
Not scored
Published
Apr 3, 2026
Updated
Oct 30, 2026
Reserved
Jan 13, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

serial: core: fix infinite loop in handle_tx() for PORT_UNKNOWN

uart_write_room() and uart_write() behave inconsistently when xmit_buf is NULL (which happens for PORT_UNKNOWN ports that were never properly initialized):

- uart_write_room() returns kfifo_avail() which can be > 0 - uart_write() checks xmit_buf and returns 0 if NULL

This inconsistency causes an infinite loop in drivers that rely on tty_write_room() to determine if they can write:

while (tty_write_room(tty) > 0) { written = tty->ops->write(...); // written is always 0, loop never exits }

For example, caif_serial's handle_tx() enters an infinite loop when used with PORT_UNKNOWN serial ports, causing system hangs.

Fix by making uart_write_room() also check xmit_buf and return 0 if it's NULL, consistent with uart_write().

Reproducer: https://gist.github.com/mrpre/d9a694cc0e19828ee3bc3b37983fde13

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 91c2a5d201daf66fa3f42b8a383bb89174bde2c8Affected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before c9e845014723d552944cec4e146ec7b841cda34dAffected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before d45cfa70bf0159afb31cb03d2d16ec5a5053460cAffected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before efe85a557186b7fe915572ae93a8f3f78bfd9a22Affected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before bc70f2b36cf474d5cc8ecbcaf57f3e326fdec67cAffected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 455ce986fa356ff43a43c0d363ba95fa152f21d5Affected
LinuxLinux
  • 2.6.12Affected
  • before 2.6.12Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.160 through 6.6.*Not affected
  • 6.12.114 through 6.12.*Not affected
  • 6.18.20 through 6.18.*Not affected
  • 6.19.10 through 6.19.*Not affected
  • 7.0 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.