Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-46275— Bluetooth: hci_uart: fix UAFs and race conditions in close and init paths

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于蓝牙hci_uart的关闭和初始化路径中存在释放后重用和竞争条件,可能导致空指针取消引用。

CVSS 7.8 · High EPSS 0.19% · P8

Affected Version Matrix 28

VendorProduct Version RangeStatus
Linux Linux 3b799254cf6f481460719023d7a18f46651e5e7f< 78aad93e938f013d9272fe0ee168f27883afa95c affected
3b799254cf6f481460719023d7a18f46651e5e7f< e2d19969c8d9198ecc3090bcd5312ecd503a3339 affected
3b799254cf6f481460719023d7a18f46651e5e7f< c85cff648a2bc92322912db5f1727ad05afae7b6 affected
3b799254cf6f481460719023d7a18f46651e5e7f< 9d20d48be2c4a071fb015eb09bda2cecd25daf34 affected
3b799254cf6f481460719023d7a18f46651e5e7f< 81c7a3c22a0f2808cf4ae0b4908f59763b23606d affected
3b799254cf6f481460719023d7a18f46651e5e7f< 192cb0f1ca706d9a1bc36ae0ad5f666d1e4fd894 affected
3b799254cf6f481460719023d7a18f46651e5e7f< 7338031946bd06f6dff149e67b60c4cd083bfea8 affected
3b799254cf6f481460719023d7a18f46651e5e7f< c1bb9336ae6b54a5f6a353c4bd4ed9a4307e429b affected
… +20 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-46275

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
Bluetooth: hci_uart: fix UAFs and race conditions in close and init paths
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: hci_uart: fix UAFs and race conditions in close and init paths Vulnerabilities leading to Use-After-Free (UAF) and Null Pointer Dereference (NPD) conditions were observed in the lifecycle management of hci_uart. The primary issue arises because the workqueues (init_ready and write_work) are only flushed/cancelled if the HCI_UART_PROTO_READY flag is set during TTY close. If a hangup occurs before setup completes, hci_uart_tty_close() skips the teardown of these workqueues and proceeds to free the `hu` struct. When the scheduled work executes later, it blindly dereferences the freed `hu` struct. Furthermore, several data races and UAFs were identified in the teardown sequence: 1. Calling hci_uart_flush() from hci_uart_close() without effectively disabling write_work causes a race condition where both can concurrently double-free hu->tx_skb. This happens because protocol timers can concurrently invoke hci_uart_tx_wakeup() and requeue write_work. 2. Calling hci_free_dev(hdev) before hu->proto->close(hu) causes a UAF when vendor specific protocol close callbacks dereference hu->hdev. 3. In the initialization error paths, failing to take the proto_lock write lock before clearing PROTO_READY leads to races with active readers. Additionally, hci_uart_tty_receive() accesses hu->hdev outside the read lock, leading to UAFs if the initialization error path frees hdev concurrently. Fix these synchronization and lifecycle issues by: 1. Re-ordering hci_uart_tty_close() to clear HCI_UART_PROTO_READY first, followed immediately by a cancel_work_sync(&hu->write_work). Clearing the flag locks out concurrent protocol timers from successfully invoking hci_uart_tx_wakeup(), effectively rendering the cancellation permanent and preventing the tx_skb double-free. 2. Note: Clearing PROTO_READY early causes hci_uart_close() to skip hu->proto->flush(). This is perfectly safe in the tty_close path because hu->proto->close() executes shortly after, which intrinsically purges all protocol SKB queues and tears down the state. 3. Relocating hu->proto->close(hu) strictly prior to hci_free_dev(hdev) across all close and error paths to prevent vendor-level UAFs. 4. Moving the hdev->stat.byte_rx increment in hci_uart_tty_receive() inside the proto_lock read-side critical section to safely synchronize with device unregistration. 5. Adding cancel_work_sync(&hu->write_work) to hci_uart_close() to safely flush the workqueue before hci_uart_flush() is invoked via the HCI core. 6. Utilizing cancel_work_sync() instead of disable_work_sync() across all paths to prevent permanently breaking user-space retry capabilities.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于蓝牙hci_uart的关闭和初始化路径中存在释放后重用和竞争条件,可能导致空指针取消引用。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux 3b799254cf6f481460719023d7a18f46651e5e7f ~ 78aad93e938f013d9272fe0ee168f27883afa95c -
Linux Linux 5.10 -

II. Public POCs for CVE-2026-46275

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-46275

请登录查看更多情报信息。

Patches & Fixes for CVE-2026-46275 (7)

Same Patch Batch · Linux · 2026-06-08 · 41 CVEs total

CVE-2026-46289 9.8 CRITICAL lib/scatterlist: fix length calculations in extract_kvec_to_sg
CVE-2026-46288 8.4 HIGH of: unittest: fix use-after-free in of_unittest_changeset()
CVE-2026-46307 8.3 HIGH wifi: ath5k: do not access array OOB
CVE-2026-46303 8.2 HIGH isofs: validate Rock Ridge CE continuation extent against volume size
CVE-2026-46274 7.8 HIGH io-wq: check that the predecessor is hashed in io_wq_remove_pending()
CVE-2026-46311 7.8 HIGH drm/amdgpu/userq: fix access to stale wptr mapping
CVE-2026-46280 7.8 HIGH lib: test_hmm: evict device pages on file close to avoid use-after-free
CVE-2026-46277 7.8 HIGH mm/zone_device: do not touch device folio after calling ->folio_free()
CVE-2026-46306 7.5 HIGH flow_dissector: do not dissect PPPoE PFC frames
CVE-2026-46304 7.5 HIGH nvmet: avoid recursive nvmet-wq flush in nvmet_ctrl_free
CVE-2026-46299 7.0 HIGH hfsplus: fix held lock freed on hfsplus_fill_super()
CVE-2026-46296 spi: s3c64xx: fix NULL-deref on driver unbind
CVE-2026-46298 pseries/papr-hvpipe: Fix race with interrupt handler
CVE-2026-46301 spi: topcliff-pch: fix use-after-free on unbind
CVE-2026-46302 selinux: allow multiple opens of /sys/fs/selinux/policy
CVE-2026-46314 drm/v3d: Reject empty multisync extension to prevent infinite loop
CVE-2025-71315 drm/vkms: Convert to DRM's vblank timer
CVE-2026-46305 staging: rtl8723bs: os_dep: avoid NULL pointer dereference in rtw_cbuf_alloc
CVE-2026-46313 media: intel/ipu6: fix error pointer dereference
CVE-2026-46308 pmdomain: mediatek: fix use-after-free in scpsys_get_bus_protection_legacy()

Showing top 20 of 41 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2026-46275

No comments yet


Leave a comment