{"id":"CVE-2026-23146","revision":"4f5e5e621a3448cea3811e45ba8288b6","records":[{"revision":"4f5e5e621a3448cea3811e45ba8288b6","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-23146","aliases":[],"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.","state":0,"publishedAt":"2026-02-14T16:01:16.169+00:00","modifiedAt":"2026-10-19T18:25:33.428+00:00","affected":[{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"drivers/bluetooth/hci_ldisc.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"a40f94f7caa8d3421b64f63ac31bc0f24c890f39\",\n                            \"lessThan\": \"b0a900939e7e4866d9b90e9112514b72c451e873\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"9e5a0f5777162e503400c70c6ed25fbbe2d38799\",\n                            \"lessThan\": \"ccc683f597ceb28deb966427ae948e5ac739a909\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"80f14e9de6a43a0bd8194cad1003a3e6dcbc3984\",\n                            \"lessThan\": \"937a573423ce5a96fdb1fd425dc6b8d8d4ab5779\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"02e1bcdfdf769974e7e9fa285e295cd9852e2a38\",\n                            \"lessThan\": \"186d147cf7689ba1f9b3ddb753ab634a84940cc9\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"281782d2c6730241e300d630bb9f200d831ede71\",\n                            \"lessThan\": \"53e54cb31e667fca05b1808b990eac0807d1dab0\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"5df5dafc171b90d0b8d51547a82657cd5a1986c7\",\n                            \"lessThan\": \"03e8c90c62233382042b7bd0fa8b8900552fdb62\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"5df5dafc171b90d0b8d51547a82657cd5a1986c7\",\n                            \"lessThan\": \"0c3cd7a0b862c37acbee6d9502107146cc944398\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"1dcf08fcff5ca529de6dc0395091f28854f4e54a\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"8e5aff600539e5faea294d9612cca50220e602b8\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"db7509fa110dd9b11134b75894677f30353b2c51\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"5.10.237\",\n                            \"lessThan\": \"5.10.249\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.15.181\",\n                            \"lessThan\": \"5.15.199\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.1.135\",\n                            \"lessThan\": \"6.1.162\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.6.88\",\n                            \"lessThan\": \"6.6.123\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.12.24\",\n                            \"lessThan\": \"6.12.69\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.4.293\",\n                            \"lessThan\": \"5.5\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.13.12\",\n                            \"lessThan\": \"6.14\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.14.3\",\n                            \"lessThan\": \"6.15\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"semver\"\n                        }\n                    ]\n                }"},{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"affected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"drivers/bluetooth/hci_ldisc.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"6.15\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"6.15\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.10.249\",\n                            \"lessThanOrEqual\": \"5.10.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.15.199\",\n                            \"lessThanOrEqual\": \"5.15.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.1.162\",\n                            \"lessThanOrEqual\": \"6.1.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.6.123\",\n                            \"lessThanOrEqual\": \"6.6.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.12.69\",\n                            \"lessThanOrEqual\": \"6.12.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.18.9\",\n                            \"lessThanOrEqual\": \"6.18.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.19\",\n                            \"lessThanOrEqual\": \"*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"original_commit_for_fix\"\n                        }\n                    ]\n                }"}],"metrics":[],"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"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-23146","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-23146","identifiers":["CVE-2026-23146"]},"retained":false,"historicalAffected":[]}],"coverage":[]}