CVE Catalog

CVE-2026-23146

MediumCVSS 5.5
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.11%

1th percentile - higher than 1% of all known CVEs

Summary

In the Linux kernel, a flaw was fixed in hci_uart where hci_uart_set_proto() sets HCI_UART_PROTO_INIT before hu->priv is initialized by proto->open(). If a TTY write wakeup occurs during this window, write_work may be scheduled and access the uninitialized hu->priv pointer, causing a NULL pointer dereference in hci_uart_write_work(). The fix moves setting the flag after proto->open() succeeds.

Risk Assessment

May cause kernel crashes (oops/panic) and denial of service on systems using Bluetooth over UART, especially during concurrent write operations.

Recommendation

Update the Linux kernel to a version with the fix. Monitor systems with Bluetooth HCI UART for unexpected reboots or kernel errors.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: hci_uart: fix null-ptr-deref in hci_uart_write_work hci_uart_set_proto() sets HCI_UART_PROTO_INIT before calling hci_uart_register_dev(), which calls proto->open() to initialize hu->priv. However, if a TTY write wakeup occurs during this window, hci_uart_tx_wakeup() may schedule write_work before hu->priv is initialized, leading to a NULL pointer dereference in hci_uart_write_work() when proto->dequeue() accesses hu->priv. The race condition is: CPU0 CPU1 ---- ---- hci_uart_set_proto() set_bit(HCI_UART_PROTO_INIT) hci_uart_register_dev() tty write wakeup hci_uart_tty_wakeup() hci_uart_tx_wakeup() schedule_work(&hu->write_work) proto->open(hu) // initializes hu->priv hci_uart_write_work() hci_uart_dequeue() proto->dequeue(hu) // accesses hu->priv (NULL!) Fix this by moving set_bit(HCI_UART_PROTO_INIT) after proto->open() succeeds, ensuring hu->priv is initialized before any work can be scheduled.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS