CVE-2026-64409CWE-835

CVE-2026-64409

Medium · published July 25, 2026

CVSS v3.1
5.5
EPSS
0%
Percentile
1.9
In the wild
Unconfirmed
What it is

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

Bluetooth: btmtksdio: fix infinite loop in btmtksdio_txrx_work()

Every once in a while we see a hung btmtksdio_flush() task:

INFO: task kworker/u17:0:189 blocked for more than 122 seconds.

__cancel_work_timer+0x3f4/0x460

cancel_work_sync+0x1c/0x2c

btmtksdio_flush+0x2c/0x40

hci_dev_open_sync+0x10c4/0x2190

[..]

It all boils down to incorrect time_is_before_jiffies() usage in

btmtksdio_txrx_work(). The btmtksdio_txrx_work() loop is expected

to be terminated if running for longer than 5*HZ. However the

timeout check is twisted: time_is_before_jiffies(old_jiffies + 5*HZ)

evaluates to true when old_jiffies + 5*HZ is in the past i.e. when a

timeout has occurred. Using OR with time_is_before_jiffies(txrx_timeout)

means that:

- before the 5-second timeout: the condition is `int_status || false`,

so it loops as long as there are pending interrupts.

- after the 5-second timeout: the condition becomes `int_status || true`,

which is always true.

When the loop becomes infinite btmtksdio_txrx_work() loop never

terminates and never releases the SDIO host.

Fix loop termination condition to actually enforce a 5*HZ timeout.

The record
Technical detail
CVSS v3.1
5.5 · MEDIUM
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00123 · 1.9th percentile
Weakness
CWE-835 · Loop with Unreachable Exit Condition ('Infinite Loop')
Published
2026-07-25T14:17Z
Affected products (5)
ProductVersionsFixed in
linux/linux_kernel≥ 5.17, < 6.1.1786.1.178
linux/linux_kernel≥ 6.2, < 6.6.1456.6.145
linux/linux_kernel≥ 6.7, < 6.12.966.12.96
linux/linux_kernel≥ 6.13, < 6.18.396.18.39
linux/linux_kernel≥ 6.19, < 7.1.47.1.4
References (6)
EPSS history
Timeline
  • 25 JUL 08:50Z
    Bluetooth: btmtksdio: fix infinite loop in btmtksdio_txrx_work()
    cvelistv5