Vulnerability Details CVE-2026-53197
In the Linux kernel, the following vulnerability has been resolved:
xfrm: iptfs: fix ABBA deadlock in iptfs_destroy_state()
iptfs_destroy_state() calls hrtimer_cancel() while holding a spinlock
that the timer callback also acquires, leading to an ABBA deadlock on
SMP systems.
For the output timer (iptfs_timer):
- iptfs_destroy_state() holds x->lock, calls hrtimer_cancel()
- iptfs_delay_timer() callback takes x->lock
For the drop timer (drop_timer):
- iptfs_destroy_state() holds drop_lock, calls hrtimer_cancel()
- iptfs_drop_timer() callback takes drop_lock
Both timers use HRTIMER_MODE_REL_SOFT, so their callbacks run in softirq
context. When hrtimer_cancel() is called for a soft timer that is
currently executing on another CPU, hrtimer_cancel_wait_running() spins
on softirq_expiry_lock -- the same lock held by the softirq running the
callback. If the callback is blocked waiting for the spinlock held by
the caller of hrtimer_cancel(), a circular dependency forms:
CPU 0: holds lock_A -> waits for softirq_expiry_lock
CPU 1: holds softirq_expiry_lock -> waits for lock_A
Fix by calling hrtimer_cancel() before acquiring the respective locks.
hrtimer_cancel() is safe to call without holding any lock and will wait
for any in-progress callback to complete. For the output timer, the
lock is still acquired afterwards to drain the packet queue. For the
drop timer, the lock/unlock pair is removed entirely since it only
existed to serialize with the timer callback, which hrtimer_cancel()
already guarantees.
Found by source code audit.
Exploit prediction scoring system (EPSS) score
EPSS Score 0.002
EPSS Ranking 7.0%
CVSS Severity
CVSS v3 Score 5.5
Products affected by CVE-2026-53197
-
cpe:2.3:o:linux:linux_kernel:6.14
-
cpe:2.3:o:linux:linux_kernel:6.14.1
-
cpe:2.3:o:linux:linux_kernel:6.14.10
-
cpe:2.3:o:linux:linux_kernel:6.14.11
-
cpe:2.3:o:linux:linux_kernel:6.14.2
-
cpe:2.3:o:linux:linux_kernel:6.14.3
-
cpe:2.3:o:linux:linux_kernel:6.14.4
-
cpe:2.3:o:linux:linux_kernel:6.14.5
-
cpe:2.3:o:linux:linux_kernel:6.14.6
-
cpe:2.3:o:linux:linux_kernel:6.14.7
-
cpe:2.3:o:linux:linux_kernel:6.14.8
-
cpe:2.3:o:linux:linux_kernel:6.14.9
-
cpe:2.3:o:linux:linux_kernel:6.15
-
cpe:2.3:o:linux:linux_kernel:6.15.1
-
cpe:2.3:o:linux:linux_kernel:6.15.10
-
cpe:2.3:o:linux:linux_kernel:6.15.11
-
cpe:2.3:o:linux:linux_kernel:6.15.2
-
cpe:2.3:o:linux:linux_kernel:6.15.3
-
cpe:2.3:o:linux:linux_kernel:6.15.4
-
cpe:2.3:o:linux:linux_kernel:6.15.5
-
cpe:2.3:o:linux:linux_kernel:6.15.6
-
cpe:2.3:o:linux:linux_kernel:6.15.7
-
cpe:2.3:o:linux:linux_kernel:6.15.8
-
cpe:2.3:o:linux:linux_kernel:6.15.9
-
cpe:2.3:o:linux:linux_kernel:6.16
-
cpe:2.3:o:linux:linux_kernel:6.16.1
-
cpe:2.3:o:linux:linux_kernel:6.16.10
-
cpe:2.3:o:linux:linux_kernel:6.16.11
-
cpe:2.3:o:linux:linux_kernel:6.16.12
-
cpe:2.3:o:linux:linux_kernel:6.16.2
-
cpe:2.3:o:linux:linux_kernel:6.16.3
-
cpe:2.3:o:linux:linux_kernel:6.16.4
-
cpe:2.3:o:linux:linux_kernel:6.16.5
-
cpe:2.3:o:linux:linux_kernel:6.16.6
-
cpe:2.3:o:linux:linux_kernel:6.16.7
-
cpe:2.3:o:linux:linux_kernel:6.16.8
-
cpe:2.3:o:linux:linux_kernel:6.16.9
-
cpe:2.3:o:linux:linux_kernel:6.17
-
cpe:2.3:o:linux:linux_kernel:6.17.1
-
cpe:2.3:o:linux:linux_kernel:6.17.10
-
cpe:2.3:o:linux:linux_kernel:6.17.11
-
cpe:2.3:o:linux:linux_kernel:6.17.12
-
cpe:2.3:o:linux:linux_kernel:6.17.13
-
cpe:2.3:o:linux:linux_kernel:6.17.2
-
cpe:2.3:o:linux:linux_kernel:6.17.3
-
cpe:2.3:o:linux:linux_kernel:6.17.4
-
cpe:2.3:o:linux:linux_kernel:6.17.5
-
cpe:2.3:o:linux:linux_kernel:6.17.6
-
cpe:2.3:o:linux:linux_kernel:6.17.7
-
cpe:2.3:o:linux:linux_kernel:6.17.8
-
cpe:2.3:o:linux:linux_kernel:6.17.9
-
cpe:2.3:o:linux:linux_kernel:6.18
-
cpe:2.3:o:linux:linux_kernel:6.18.1
-
cpe:2.3:o:linux:linux_kernel:6.18.10
-
cpe:2.3:o:linux:linux_kernel:6.18.11
-
cpe:2.3:o:linux:linux_kernel:6.18.13
-
cpe:2.3:o:linux:linux_kernel:6.18.14
-
cpe:2.3:o:linux:linux_kernel:6.18.16
-
cpe:2.3:o:linux:linux_kernel:6.18.17
-
cpe:2.3:o:linux:linux_kernel:6.18.18
-
cpe:2.3:o:linux:linux_kernel:6.18.19
-
cpe:2.3:o:linux:linux_kernel:6.18.2
-
cpe:2.3:o:linux:linux_kernel:6.18.20
-
cpe:2.3:o:linux:linux_kernel:6.18.21
-
cpe:2.3:o:linux:linux_kernel:6.18.22
-
cpe:2.3:o:linux:linux_kernel:6.18.23
-
cpe:2.3:o:linux:linux_kernel:6.18.24
-
cpe:2.3:o:linux:linux_kernel:6.18.25
-
cpe:2.3:o:linux:linux_kernel:6.18.26
-
cpe:2.3:o:linux:linux_kernel:6.18.28
-
cpe:2.3:o:linux:linux_kernel:6.18.29
-
cpe:2.3:o:linux:linux_kernel:6.18.3
-
cpe:2.3:o:linux:linux_kernel:6.18.30
-
cpe:2.3:o:linux:linux_kernel:6.18.33
-
cpe:2.3:o:linux:linux_kernel:6.18.4
-
cpe:2.3:o:linux:linux_kernel:6.18.5
-
cpe:2.3:o:linux:linux_kernel:6.18.6
-
cpe:2.3:o:linux:linux_kernel:6.18.7
-
cpe:2.3:o:linux:linux_kernel:6.18.8
-
cpe:2.3:o:linux:linux_kernel:6.18.9
-
cpe:2.3:o:linux:linux_kernel:6.19
-
cpe:2.3:o:linux:linux_kernel:6.19.1
-
cpe:2.3:o:linux:linux_kernel:6.19.10
-
cpe:2.3:o:linux:linux_kernel:6.19.11
-
cpe:2.3:o:linux:linux_kernel:6.19.12
-
cpe:2.3:o:linux:linux_kernel:6.19.13
-
cpe:2.3:o:linux:linux_kernel:6.19.14
-
cpe:2.3:o:linux:linux_kernel:6.19.3
-
cpe:2.3:o:linux:linux_kernel:6.19.4
-
cpe:2.3:o:linux:linux_kernel:6.19.6
-
cpe:2.3:o:linux:linux_kernel:6.19.7
-
cpe:2.3:o:linux:linux_kernel:6.19.8
-
cpe:2.3:o:linux:linux_kernel:6.19.9
-
cpe:2.3:o:linux:linux_kernel:7.0
-
cpe:2.3:o:linux:linux_kernel:7.0.1
-
cpe:2.3:o:linux:linux_kernel:7.0.10
-
cpe:2.3:o:linux:linux_kernel:7.0.2
-
cpe:2.3:o:linux:linux_kernel:7.0.3
-
cpe:2.3:o:linux:linux_kernel:7.0.5
-
cpe:2.3:o:linux:linux_kernel:7.0.6
-
cpe:2.3:o:linux:linux_kernel:7.1