data built 2026-10-19T13:16:53Z

Look up another CVE · open CVE-2026-53180 in the interactive tracker

CVE-2026-53180

timers/migration: Fix livelock in tmigr_handle_remote_up()

7.5 EPSS 0.3% AV:N

Published 2026-06-25 (4 months ago) by the Linux kernel CNA. Subsystem kernel/time. Debian urgency: unimportant.

What to do, per Debian release

Debian's own status for CVE-2026-53180 in every release this site tracks, and what each one means in practice. Every status below is the one the Debian Security Team publishes for this CVE. source

ReleaseStatus VersionWhat this means
Debian 12bookwormnot affected6.1.190-1Nothing to do. bookworm never shipped the vulnerable code.
Debian 13trixiefixed6.12.94-1Update the kernel and reboot. Fixed in 6.12.94-1. A running kernel keeps the old code until the machine restarts.
Debian 14forkyfixed7.0.13-1Update the kernel and reboot. Fixed in 7.0.13-1. A running kernel keeps the old code until the machine restarts.
Debian unstablesidfixed7.0.13-1Update the kernel and reboot. Fixed in 7.0.13-1. A running kernel keeps the old code until the machine restarts.

The vulnerability

What the bug is

tmigr_handle_remote_cpu() skips timer_expire_remote() when cpu == smp_processor_id(), assuming the local softirq path already handled this CPU's timers. This assumption is wrong because jiffies can advance after the handling of the CPU's global timers in run_timer_base(BASE_GLOBAL) and before tmigr_handle_remote() evaluates the expiry times. As a consequence a timer which expires after the CPU local timer wheel advanced and becomes expired in the remote handling is ignored and the callback is never invoked and removed from the timer wheel. What's worse is that fetch_next_timer_interrupt_remote() keeps reporting it as expired, and the event is re-queued with expires == now on each iteration. The goto-again loop spins indefinitely. Fix this by calling timer_expire_remote() unconditionally. That's minimal overhead for the common case as __run_timer_base() returns immediately if there is nothing to expire in the local wheel. [ tglx: Amend change log and add a comment ]

Where it lives

The fix touches these files. If the subsystem is one you do not use, the practical exposure is lower, though the package is still the vulnerable one.

kernel/time/timer_migration.c

What this is
HIGH-RESOLUTION TIMERS, TIMER WHEEL, CLOCKEVENTSMAINTAINERS section matched on kernel/time/timer_migration.* · linux-kernel@vger.kernel.org · Maintained

Check it on the machine

grep -wE 'CONFIG_NO_HZ_COMMON|CONFIG_SMP' /boot/config-$(uname -r)

Reads the booted kernel's own configuration, on the machine and nowhere else. =y is built in, =m is a module, and an is not set line means the code is not there.

Show whether Debian builds this, per release

Debian builds this, but not on every flavour. At least one release below builds the code on some of its kernel flavours and not on others, so the answer depends on the architecture and flavour installed. The build rule could not be established for 1 release, so nothing is claimed about those.

  • bookworm?
  • trixieYnot built on armel/rpi, s390x/s390x
  • forky, sidYnot built on s390x/s390x
?
not established - no Makefile entry for the affected file
Y
built in where it is built at all; some flavours do not build it

Where a release above reads "not established", no build rule for the affected file was found in that release's kernel tree. That is a gap in this lookup, not a finding that the code is absent.

Build switches
CONFIG_NO_HZ_COMMON, CONFIG_SMP
Reads as
all on means the file is compiled; any one off means it is not.

From the configuration Debian publishes for every kernel flavour it builds. It covers only the architectures Debian ships a linux-config package for, and nothing about a kernel you built yourself. Debian's own status above stays authoritative about the source package.MAINTAINERS kbuild Makefiles Debian linux-config packages

Signals

Published
2026-06-25 (4 months ago)source
CVSS
7.5 high
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:Hsource recompute it
Attack vector
network (AV:N)source
EPSS
0.34%, higher than 25.9% of all CVEssource
CISA KEV
not listedthe KEV catalogue
Debian urgency
unimportantsource
Subsystem
kernel/time

Upstream fixes

The versions the CNA records as introducing and fixing this, and the commit for each. source

IntroducedFixed inCommit
6.96.12.9407b3b83587fb
6.96.18.361d6c2062b77b
6.97.0.13d338e61ea940
6.97.1d486b4934a8e

Why the CNA scored it this way

Quoted from the kernel CNA's own scoring file, word for word. A highlighted metric carries the most severe value CVSS v3.1 defines for it, which is what pushes the score up. source

AV:NAttack vector, network
Unauthenticated remote packets can create non-pinned global kernel timers, for example incomplete IPv4/IPv6 fragment reassembly queues whose timers are armed from packet receive paths. Those timers are handled by the affected timer migration code, making a network trigger reasonable on exposed Linux hosts.
AC:LAttack complexity, low
The bug requires a timing window where jiffies advances between local global timer processing and migration handling, but an attacker can repeatedly create many expiring global timers to exercise it. Under the required rule, this uncertainty is scored as low complexity.
PR:NPrivileges required, none
The remote fragmented-packet path requires no local account, capabilities, or protocol authentication. It can be reached before any application-level authorization.
UI:NUser interaction, none
No victim user action is required once the host receives the triggering traffic. Timer expiry and softirq processing happen autonomously in the kernel.
S:UScope, unchanged
The impact remains within the same kernel security authority. There is no VM, IOMMU, container-boundary, or sandbox escape scope change.
C:NConfidentiality impact, none
The defect is a timer migration logic livelock, not a memory disclosure or memory corruption issue. No kernel memory read primitive is indicated.
I:NIntegrity impact, none
The skipped timer callback and repeated requeue do not provide data modification, arbitrary write, or control-flow hijack. The observed effect is denial of service only.
A:HAvailability impact, high
The stale expired timer causes tmigr_handle_remote_up() to spin indefinitely in the timer softirq path. An infinite kernel livelock/soft lockup is a high availability impact.