Loop with Unreachable Exit Condition ('Infinite Loop') Affecting kernel6.12-debuginfo-common-x86_64 package, versions <1:6.12.114-139.210.amzn2023


Severity

Recommended
high

Based on Amazon Linux security rating.

Threat Intelligence

EPSS
0.2% (10th 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-AMZN2023-KERNEL612DEBUGINFOCOMMONX8664-22398576
  • published10 Nov 2026
  • disclosed4 Sept 2026

Introduced: 4 Sep 2026

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

How to fix?

Upgrade Amazon-Linux:2023 kernel6.12-debuginfo-common-x86_64 to version 1:6.12.114-139.210.amzn2023 or higher.
This issue was patched in ALAS2023-2026-3402.

NVD Description

Note: Versions mentioned in the description apply only to the upstream kernel6.12-debuginfo-common-x86_64 package and not the kernel6.12-debuginfo-common-x86_64 package as distributed by Amazon-Linux. See How to fix? for Amazon-Linux:2023 relevant fixed versions and status.

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

tipc: avoid busy looping in tipc_exit_net()

Blamed commit introduced a busy-wait loop in tipc_exit_net() to wait for pending UDP bearer cleanup works to complete:

   while (atomic_read(&amp;tn-&gt;wq_count))
           cond_resched();

This loop can busy-wait for a long time if cond_resched() is a NOP. This typically happens if the netns exit is executed by a high priority task, or under kernels configured without preemption (CONFIG_PREEMPT_NONE). In such cases, it wastes CPU cycles and can lead to soft lockups.

Fix this by replacing the busy loop with wait_var_event(), allowing the thread to sleep properly until the work queue count reaches zero.

Accordingly, update cleanup_bearer() to use atomic_dec_and_test() and wake_up_var() to wake up the waiter when the count drops to zero.

This uses the global wait queue hash table, avoiding the need to bloat struct tipc_net with a wait_queue_head_t. The atomic_dec_and_test() provides the necessary memory barrier to ensure the wakeup is not missed.

CVSS Base Scores

version 3.1