Loop with Unreachable Exit Condition ('Infinite Loop') Affecting linux-6.12 package, versions <6.12.100-1~deb12u1


Severity

Recommended
0.0
medium
0
10

Snyk's Security Team recommends NVD's CVSS assessment. Learn more

Threat Intelligence

EPSS
0.12% (3rd percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk IDSNYK-ECHOLATEST-LINUX612-18579254
  • published7 Aug 2026
  • disclosed25 Jul 2026

Introduced: 25 Jul 2026

CVE-2026-64409  (opens in a new tab)
CWE-835  (opens in a new tab)

How to fix?

Upgrade Echo:latest linux-6.12 to version 6.12.100-1~deb12u1 or higher.

NVD Description

Note: Versions mentioned in the description apply only to the upstream linux-6.12 package and not the linux-6.12 package as distributed by Echo. See How to fix? for Echo:latest relevant fixed versions and status.

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 5HZ. However the timeout check is twisted: time_is_before_jiffies(old_jiffies + 5HZ) 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.

CVSS Base Scores

version 3.1