CVE-2026-98297

Bluetooth: hci_core: Fix queuing tx_work after workqueue is drained

State
Published
Severity
Not scored
Published
Oct 6, 2026
Updated
Oct 30, 2026
Reserved
Sep 25, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

Bluetooth: hci_core: Fix queuing tx_work after workqueue is drained

hci_send_acl(), hci_send_sco() and hci_send_iso() queue hdev->tx_work unconditionally. They can run from the L2CAP/SCO/ISO socket send path while hci_dev_close_sync() is draining hdev->workqueue (HCIDEVDOWN racing with a socket write). Since that queue_work() is not chained work from the tx_work worker itself, __queue_work() sees the queue marked __WQ_DRAINING, warns "cannot queue %ps on wq %s", and drops the work:

WARNING: CPU: 1 PID: 5985 at kernel/workqueue.c:2352 __queue_work Call Trace: queue_work_on l2cap_chan_send l2cap_sock_sendmsg ...

hci_dev_close_sync() already sets HCI_CMD_DRAIN_WORKQUEUE before draining, but only hci_cmd_work() and handle_cmd_cnt_and_timer() check it before queuing. Route the tx_work producers through the same guard via a shared hci_sched_tx() helper.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • ccf07dfb9d7d1e2c7a1eeb782f90d9b614ebba9c to before 9943b4c70ad972f368705da8605054f865b08dadAffected
  • 7b81c1378b79c3143ca3fdb3d18ac0f01cbabb21 to before 8010212197d4a3ee714f78ed77048d0b712ff925Affected
  • 9cebe4680bb9a72f80c6541eb24af06db7a1fbc9 to before ab0678a0701ac4de499428dc1b321659bb74d272Affected
  • 47330cc875b36a1cf7b3543cb2cf90a7c603ce0e to before e220c1242a643d97102a79f09b7ef3aa31276961Affected
  • 525daaea459fc215f432de1b8debbd9144bf97b0 to before cbb325bc150e8c0dbce004ac0e5516bcffc0de31Affected
  • 525daaea459fc215f432de1b8debbd9144bf97b0 to before 6610c6fe4b8936c232048e6049bf77c70a6f759cAffected
  • 60bceb9a4c693e68cc90ba4b2dfb9e000e8638ffAffected
  • 6.12.93 to before 6.12.112Affected
  • 6.18.35 to before 6.18.54Affected
  • 7.0.12 to before 7.1Affected
LinuxLinux
  • 7.1Affected
  • before 7.1Not affected
  • 6.12.112 through 6.12.*Not affected
  • 6.18.54 through 6.18.*Not affected
  • 7.2.8 through 7.2.*Not affected
  • 7.3 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.