CVE-2026-64409 Bluetooth: btmtksdio: fix infinite loop in btmtksdio_txrx_work()
A logic error in the Linux kernel Bluetooth driver causes an infinite loop, leading to a system hang and denial of service.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Local or same network only
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-64409?
CVE-2026-64409 is a medium-severity denial of service vulnerability in Linux kernel, published on 25 Jul 2026. It can only be exploited from the same machine or local network, with no action from the victim.
Official description
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.
Weakness: CWE-835
Which versions are affected by CVE-2026-64409?
It affects 1 product.
Products include Linux kernel.
How do I fix CVE-2026-64409?
Apply the vendor's patch.
Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.
Is CVE-2026-64409 being exploited?
There is no known exploitation of CVE-2026-64409 in the wild and no public exploit code.
Other vulnerabilities in Linux kernel
Sources
Also known as AZL-93518, BELL-CVE-2026-64409, DEBIAN-CVE-2026-64409, GHSA-x8qw-hc9f-qxq2, ROOT-OS-UBUNTU-2204-CVE-2026-64409, UBUNTU-CVE-2026-64409.