CVE-2026-23146

Bluetooth: hci_uart: fix null-ptr-deref in hci_uart_write_work

State
Published
Severity
Not scored
Published
Feb 14, 2026
Updated
Oct 19, 2026
Reserved
Jan 13, 2026

Read the record on cve.org

Description

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.

Scores

The record has no CVSS score.

Weaknesses

  • CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')

Affected Products

ProductVersions
LinuxLinux
  • a40f94f7caa8d3421b64f63ac31bc0f24c890f39 to before b0a900939e7e4866d9b90e9112514b72c451e873Affected
  • 9e5a0f5777162e503400c70c6ed25fbbe2d38799 to before ccc683f597ceb28deb966427ae948e5ac739a909Affected
  • 80f14e9de6a43a0bd8194cad1003a3e6dcbc3984 to before 937a573423ce5a96fdb1fd425dc6b8d8d4ab5779Affected
  • 02e1bcdfdf769974e7e9fa285e295cd9852e2a38 to before 186d147cf7689ba1f9b3ddb753ab634a84940cc9Affected
  • 281782d2c6730241e300d630bb9f200d831ede71 to before 53e54cb31e667fca05b1808b990eac0807d1dab0Affected
  • 5df5dafc171b90d0b8d51547a82657cd5a1986c7 to before 03e8c90c62233382042b7bd0fa8b8900552fdb62Affected
  • 5df5dafc171b90d0b8d51547a82657cd5a1986c7 to before 0c3cd7a0b862c37acbee6d9502107146cc944398Affected
  • 1dcf08fcff5ca529de6dc0395091f28854f4e54aAffected
  • 8e5aff600539e5faea294d9612cca50220e602b8Affected
  • db7509fa110dd9b11134b75894677f30353b2c51Affected
  • 5.10.237 to before 5.10.249Affected
  • 5.15.181 to before 5.15.199Affected
  • 6.1.135 to before 6.1.162Affected
  • 6.6.88 to before 6.6.123Affected
  • 6.12.24 to before 6.12.69Affected
  • 5.4.293 to before 5.5Affected
  • 6.13.12 to before 6.14Affected
  • 6.14.3 to before 6.15Affected
LinuxLinux
  • 6.15Affected
  • before 6.15Not affected
  • 5.10.249 through 5.10.*Not affected
  • 5.15.199 through 5.15.*Not affected
  • 6.1.162 through 6.1.*Not affected
  • 6.6.123 through 6.6.*Not affected
  • 6.12.69 through 6.12.*Not affected
  • 6.18.9 through 6.18.*Not affected
  • 6.19 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.