Look up another CVE · open CVE-2026-53180 in the interactive tracker
CVE-2026-53180
timers/migration: Fix livelock in tmigr_handle_remote_up()
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
| Release | Status | Version | What this means |
|---|---|---|---|
| Debian 12bookworm | not affected | 6.1.190-1 | Nothing to do. bookworm never shipped the vulnerable code. |
| Debian 13trixie | fixed | 6.12.94-1 | Update the kernel and reboot. Fixed in 6.12.94-1. A running kernel keeps the old code until the machine restarts. |
| Debian 14forky | fixed | 7.0.13-1 | Update the kernel and reboot. Fixed in 7.0.13-1. A running kernel keeps the old code until the machine restarts. |
| Debian unstablesid | fixed | 7.0.13-1 | Update 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
| Introduced | Fixed in | Commit |
|---|---|---|
| 6.9 | 6.12.94 | 07b3b83587fb |
| 6.9 | 6.18.36 | 1d6c2062b77b |
| 6.9 | 7.0.13 | d338e61ea940 |
| 6.9 | 7.1 | d486b4934a8e |
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.