CVE-2023-54198
Linux Kernel vulnerability analysis and mitigation

Overview

CVE-2023-54198 is an out-of-bounds access vulnerability in the Linux kernel's TTY subsystem, specifically in the tty_driver_lookup_tty() function. When an invalid console= device (e.g., console=tty3270) is specified as a kernel boot parameter, the function returns a TTY struct without validating whether the index is within bounds, leading to a NULL pointer dereference and kernel crash. The vulnerability affects the Linux kernel across a wide range of stable branches, with patches available for versions 4.14.308, 4.19.276, 5.4.235, 5.10.173, 5.15.100, 6.1.18, 6.2.5, and 6.3+. It was published on December 30, 2025, and carries an estimated CVSS severity of Medium (Feedly, ENISA EUVD).

Technical details

The root cause is an improper bounds check (CWE-125: Out-of-bounds Read) in tty_driver_lookup_tty() within the Linux kernel's TTY layer. When the kernel processes a console= boot parameter referencing a device with an out-of-range index (e.g., tty3270), the function does not validate the index against the driver's number of TTY devices before returning the struct, resulting in a NULL pointer dereference at tty_open+0x268. The crash occurs during early kernel initialization via the call chain: kernel_init → kernel_init_freeable → console_on_rootfs → filp_open → ... → tty_open. Exploitation requires the ability to set kernel boot parameters, which is typically a local or physical access precondition (Feedly, ENISA EUVD).

Impact

Successful triggering of this vulnerability causes a kernel NULL pointer dereference, resulting in a kernel panic and system crash (denial of service). The impact is limited to availability — there is no evidence of code execution, privilege escalation, or data exfiltration potential associated with this flaw. The affected scope is any Linux system where an attacker or misconfiguration can influence kernel boot parameters (Feedly).

Exploitation steps

  1. Access boot parameters: Gain the ability to modify kernel boot parameters — this typically requires physical access to the machine (e.g., via GRUB menu) or control over a virtualization environment's VM configuration.
  2. Inject malicious console parameter: Append an invalid console= device with an out-of-range index to the kernel command line, for example: console=ttyS0 console=tty3270.
  3. Boot the kernel: Start or reboot the system with the modified boot parameters.
  4. Trigger the crash: During kernel initialization, console_on_rootfs() attempts to open the specified console device, calling tty_driver_lookup_tty() with the invalid index, which dereferences a NULL pointer and causes a kernel panic (denial of service) (Feedly, ENISA EUVD).

Indicators of compromise

  • Logs: Kernel crash logs containing BUG: kernel NULL pointer dereference, address: 00000000000000ef and RIP: 0010:tty_open+0x268/0x6f0 in dmesg or system journal output.
  • Logs: Kernel oops trace referencing the call chain console_on_rootfs → filp_open → chrdev_open → tty_open during early boot.
  • System Behavior: Unexpected kernel panic or system reboot during boot when non-standard console= parameters are present in the kernel command line.
  • Configuration: Presence of unusual or invalid console=ttyNNNN entries (e.g., console=tty3270) in /proc/cmdline or bootloader configuration files (Feedly).

Mitigation and workarounds

Apply the upstream kernel patches corresponding to your stable branch: 4.14.308, 4.19.276, 5.4.235, 5.10.173, 5.15.100, 6.1.18, 6.2.5, or 6.3+. The fix adds bounds checking in tty_driver_lookup_tty() to validate the index before returning the TTY struct. As a workaround, ensure that only valid and expected console= parameters are specified in kernel boot configurations, and restrict physical or administrative access to bootloader settings. Linux distribution vendors (Red Hat, Ubuntu, SUSE, etc.) are expected to backport these fixes into their respective kernel packages (ENISA EUVD, Feedly).

Additional resources


SourceThis report was generated using AI

Related Linux Kernel vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-64557NONEN/A
  • Linux Kernel logoLinux Kernel
  • kernel-rt-selftests-internal
NoNoJul 29, 2026
CVE-2026-64556NONEN/A
  • Linux Kernel logoLinux Kernel
  • kernel-64k-devel
NoNoJul 29, 2026
CVE-2026-64555NONEN/A
  • Linux Kernel logoLinux Kernel
  • linux-azure-fde-6.14
NoNoJul 27, 2026
CVE-2026-64554NONEN/A
  • Linux Kernel logoLinux Kernel
  • linux-gcp-6.14
NoYesJul 27, 2026
CVE-2026-64553NONEN/A
  • Linux Kernel logoLinux Kernel
  • kernel-rt-64k-debug-modules-internal
NoYesJul 27, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management