[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2026021411-CVE-2026-23146-3658@gregkh>
Date: Sat, 14 Feb 2026 17:04:12 +0100
From: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To: linux-cve-announce@...r.kernel.org
Cc: Greg Kroah-Hartman <gregkh@...nel.org>
Subject: CVE-2026-23146: Bluetooth: hci_uart: fix null-ptr-deref in hci_uart_write_work
From: Greg Kroah-Hartman <gregkh@...nel.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.
The Linux kernel CVE team has assigned CVE-2026-23146 to this issue.
Affected and fixed versions
===========================
Issue introduced in 5.10.237 with commit a40f94f7caa8d3421b64f63ac31bc0f24c890f39 and fixed in 5.10.249 with commit b0a900939e7e4866d9b90e9112514b72c451e873
Issue introduced in 5.15.181 with commit 9e5a0f5777162e503400c70c6ed25fbbe2d38799 and fixed in 5.15.199 with commit ccc683f597ceb28deb966427ae948e5ac739a909
Issue introduced in 6.1.135 with commit 80f14e9de6a43a0bd8194cad1003a3e6dcbc3984 and fixed in 6.1.162 with commit 937a573423ce5a96fdb1fd425dc6b8d8d4ab5779
Issue introduced in 6.6.88 with commit 02e1bcdfdf769974e7e9fa285e295cd9852e2a38 and fixed in 6.6.123 with commit 186d147cf7689ba1f9b3ddb753ab634a84940cc9
Issue introduced in 6.12.24 with commit 281782d2c6730241e300d630bb9f200d831ede71 and fixed in 6.12.69 with commit 53e54cb31e667fca05b1808b990eac0807d1dab0
Issue introduced in 6.15 with commit 5df5dafc171b90d0b8d51547a82657cd5a1986c7 and fixed in 6.18.9 with commit 03e8c90c62233382042b7bd0fa8b8900552fdb62
Issue introduced in 6.15 with commit 5df5dafc171b90d0b8d51547a82657cd5a1986c7 and fixed in 6.19 with commit 0c3cd7a0b862c37acbee6d9502107146cc944398
Issue introduced in 5.4.293 with commit 1dcf08fcff5ca529de6dc0395091f28854f4e54a
Issue introduced in 6.13.12 with commit 8e5aff600539e5faea294d9612cca50220e602b8
Issue introduced in 6.14.3 with commit db7509fa110dd9b11134b75894677f30353b2c51
Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.
Unaffected versions might change over time as fixes are backported to
older supported kernel versions. The official CVE entry at
https://cve.org/CVERecord/?id=CVE-2026-23146
will be updated if fixes are backported, please check that for the most
up to date information about this issue.
Affected files
==============
The file(s) affected by this issue are:
drivers/bluetooth/hci_ldisc.c
Mitigation
==========
The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes. Individual
changes are never tested alone, but rather are part of a larger kernel
release. Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all. If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
https://git.kernel.org/stable/c/b0a900939e7e4866d9b90e9112514b72c451e873
https://git.kernel.org/stable/c/ccc683f597ceb28deb966427ae948e5ac739a909
https://git.kernel.org/stable/c/937a573423ce5a96fdb1fd425dc6b8d8d4ab5779
https://git.kernel.org/stable/c/186d147cf7689ba1f9b3ddb753ab634a84940cc9
https://git.kernel.org/stable/c/53e54cb31e667fca05b1808b990eac0807d1dab0
https://git.kernel.org/stable/c/03e8c90c62233382042b7bd0fa8b8900552fdb62
https://git.kernel.org/stable/c/0c3cd7a0b862c37acbee6d9502107146cc944398
Powered by blists - more mailing lists