{"id":"CVE-2026-23146","state":"PUBLISHED","title":"Bluetooth: hci_uart: fix null-ptr-deref in hci_uart_write_work","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: hci_uart: fix null-ptr-deref in hci_uart_write_work\n\nhci_uart_set_proto() sets HCI_UART_PROTO_INIT before calling\nhci_uart_register_dev(), which calls proto->open() to initialize\nhu->priv. However, if a TTY write wakeup occurs during this window,\nhci_uart_tx_wakeup() may schedule write_work before hu->priv is\ninitialized, leading to a NULL pointer dereference in\nhci_uart_write_work() when proto->dequeue() accesses hu->priv.\n\nThe race condition is:\n\n  CPU0                              CPU1\n  ----                              ----\n  hci_uart_set_proto()\n    set_bit(HCI_UART_PROTO_INIT)\n    hci_uart_register_dev()\n                                    tty write wakeup\n                                      hci_uart_tty_wakeup()\n                                        hci_uart_tx_wakeup()\n                                          schedule_work(&hu->write_work)\n      proto->open(hu)\n        // initializes hu->priv\n                                    hci_uart_write_work()\n                                      hci_uart_dequeue()\n                                        proto->dequeue(hu)\n                                          // accesses hu->priv (NULL!)\n\nFix this by moving set_bit(HCI_UART_PROTO_INIT) after proto->open()\nsucceeds, ensuring hu->priv is initialized before any work can be\nscheduled.","publishedAt":"2026-02-14T16:01:16.169Z","updatedAt":"2026-10-19T18:25:33.428Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"a40f94f7caa8d3421b64f63ac31bc0f24c890f39","status":"affected","lessThan":"b0a900939e7e4866d9b90e9112514b72c451e873","versionType":"git"},{"version":"9e5a0f5777162e503400c70c6ed25fbbe2d38799","status":"affected","lessThan":"ccc683f597ceb28deb966427ae948e5ac739a909","versionType":"git"},{"version":"80f14e9de6a43a0bd8194cad1003a3e6dcbc3984","status":"affected","lessThan":"937a573423ce5a96fdb1fd425dc6b8d8d4ab5779","versionType":"git"},{"version":"02e1bcdfdf769974e7e9fa285e295cd9852e2a38","status":"affected","lessThan":"186d147cf7689ba1f9b3ddb753ab634a84940cc9","versionType":"git"},{"version":"281782d2c6730241e300d630bb9f200d831ede71","status":"affected","lessThan":"53e54cb31e667fca05b1808b990eac0807d1dab0","versionType":"git"},{"version":"5df5dafc171b90d0b8d51547a82657cd5a1986c7","status":"affected","lessThan":"03e8c90c62233382042b7bd0fa8b8900552fdb62","versionType":"git"},{"version":"5df5dafc171b90d0b8d51547a82657cd5a1986c7","status":"affected","lessThan":"0c3cd7a0b862c37acbee6d9502107146cc944398","versionType":"git"},{"version":"1dcf08fcff5ca529de6dc0395091f28854f4e54a","status":"affected","versionType":"git"},{"version":"8e5aff600539e5faea294d9612cca50220e602b8","status":"affected","versionType":"git"},{"version":"db7509fa110dd9b11134b75894677f30353b2c51","status":"affected","versionType":"git"},{"version":"5.10.237","status":"affected","lessThan":"5.10.249","versionType":"semver"},{"version":"5.15.181","status":"affected","lessThan":"5.15.199","versionType":"semver"},{"version":"6.1.135","status":"affected","lessThan":"6.1.162","versionType":"semver"},{"version":"6.6.88","status":"affected","lessThan":"6.6.123","versionType":"semver"},{"version":"6.12.24","status":"affected","lessThan":"6.12.69","versionType":"semver"},{"version":"5.4.293","status":"affected","lessThan":"5.5","versionType":"semver"},{"version":"6.13.12","status":"affected","lessThan":"6.14","versionType":"semver"},{"version":"6.14.3","status":"affected","lessThan":"6.15","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/bluetooth/hci_ldisc.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.15","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.15","versionType":"semver"},{"version":"5.10.249","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.199","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.162","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.123","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.69","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.9","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/bluetooth/hci_ldisc.c"]}],"references":["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"],"weaknesses":["CWE-362"],"ingestedAt":"2026-10-29T20:11:21.040Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/23xxx/CVE-2026-23146.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-23146","state":"PUBLISHED","datePublished":"2026-02-14T16:01:16.169Z","dateUpdated":"2026-10-19T18:25:33.428Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-01-13T15:37:45.974Z"},"containers":{"cna":{"title":"Bluetooth: hci_uart: fix null-ptr-deref in hci_uart_write_work","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: hci_uart: fix null-ptr-deref in hci_uart_write_work\n\nhci_uart_set_proto() sets HCI_UART_PROTO_INIT before calling\nhci_uart_register_dev(), which calls proto->open() to initialize\nhu->priv. However, if a TTY write wakeup occurs during this window,\nhci_uart_tx_wakeup() may schedule write_work before hu->priv is\ninitialized, leading to a NULL pointer dereference in\nhci_uart_write_work() when proto->dequeue() accesses hu->priv.\n\nThe race condition is:\n\n  CPU0                              CPU1\n  ----                              ----\n  hci_uart_set_proto()\n    set_bit(HCI_UART_PROTO_INIT)\n    hci_uart_register_dev()\n                                    tty write wakeup\n                                      hci_uart_tty_wakeup()\n                                        hci_uart_tx_wakeup()\n                                          schedule_work(&hu->write_work)\n      proto->open(hu)\n        // initializes hu->priv\n                                    hci_uart_write_work()\n                                      hci_uart_dequeue()\n                                        proto->dequeue(hu)\n                                          // accesses hu->priv (NULL!)\n\nFix this by moving set_bit(HCI_UART_PROTO_INIT) after proto->open()\nsucceeds, ensuring hu->priv is initialized before any work can be\nscheduled."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"a40f94f7caa8d3421b64f63ac31bc0f24c890f39","status":"affected","lessThan":"b0a900939e7e4866d9b90e9112514b72c451e873","versionType":"git"},{"version":"9e5a0f5777162e503400c70c6ed25fbbe2d38799","status":"affected","lessThan":"ccc683f597ceb28deb966427ae948e5ac739a909","versionType":"git"},{"version":"80f14e9de6a43a0bd8194cad1003a3e6dcbc3984","status":"affected","lessThan":"937a573423ce5a96fdb1fd425dc6b8d8d4ab5779","versionType":"git"},{"version":"02e1bcdfdf769974e7e9fa285e295cd9852e2a38","status":"affected","lessThan":"186d147cf7689ba1f9b3ddb753ab634a84940cc9","versionType":"git"},{"version":"281782d2c6730241e300d630bb9f200d831ede71","status":"affected","lessThan":"53e54cb31e667fca05b1808b990eac0807d1dab0","versionType":"git"},{"version":"5df5dafc171b90d0b8d51547a82657cd5a1986c7","status":"affected","lessThan":"03e8c90c62233382042b7bd0fa8b8900552fdb62","versionType":"git"},{"version":"5df5dafc171b90d0b8d51547a82657cd5a1986c7","status":"affected","lessThan":"0c3cd7a0b862c37acbee6d9502107146cc944398","versionType":"git"},{"version":"1dcf08fcff5ca529de6dc0395091f28854f4e54a","status":"affected","versionType":"git"},{"version":"8e5aff600539e5faea294d9612cca50220e602b8","status":"affected","versionType":"git"},{"version":"db7509fa110dd9b11134b75894677f30353b2c51","status":"affected","versionType":"git"},{"version":"5.10.237","status":"affected","lessThan":"5.10.249","versionType":"semver"},{"version":"5.15.181","status":"affected","lessThan":"5.15.199","versionType":"semver"},{"version":"6.1.135","status":"affected","lessThan":"6.1.162","versionType":"semver"},{"version":"6.6.88","status":"affected","lessThan":"6.6.123","versionType":"semver"},{"version":"6.12.24","status":"affected","lessThan":"6.12.69","versionType":"semver"},{"version":"5.4.293","status":"affected","lessThan":"5.5","versionType":"semver"},{"version":"6.13.12","status":"affected","lessThan":"6.14","versionType":"semver"},{"version":"6.14.3","status":"affected","lessThan":"6.15","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/bluetooth/hci_ldisc.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.15","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.15","versionType":"semver"},{"version":"5.10.249","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.199","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.162","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.123","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.69","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.9","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/bluetooth/hci_ldisc.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/b0a900939e7e4866d9b90e9112514b72c451e873"},{"url":"https://git.kernel.org/stable/c/ccc683f597ceb28deb966427ae948e5ac739a909"},{"url":"https://git.kernel.org/stable/c/937a573423ce5a96fdb1fd425dc6b8d8d4ab5779"},{"url":"https://git.kernel.org/stable/c/186d147cf7689ba1f9b3ddb753ab634a84940cc9"},{"url":"https://git.kernel.org/stable/c/53e54cb31e667fca05b1808b990eac0807d1dab0"},{"url":"https://git.kernel.org/stable/c/03e8c90c62233382042b7bd0fa8b8900552fdb62"},{"url":"https://git.kernel.org/stable/c/0c3cd7a0b862c37acbee6d9502107146cc944398"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-23T16:03:57.936Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.10.237","versionEndExcluding":"5.10.249"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15.181","versionEndExcluding":"5.15.199"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.1.135","versionEndExcluding":"6.1.162"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6.88","versionEndExcluding":"6.6.123"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.12.24","versionEndExcluding":"6.12.69"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.15","versionEndExcluding":"6.18.9"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.15","versionEndExcluding":"6.19"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.4.293"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.13.12"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.14.3"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-23146","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2026-06-10T20:41:53.104941Z"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-362","lang":"en","type":"CWE","description":"CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-19T18:25:33.428Z"}}]}}}