CVE Catalog

CVE-2026-80845

Unknown
Published: Translated: NVD NIST

Summary

A deadlock vulnerability was found in the Linux kernel's xfrm NAT keepalive mechanism. The nat_keepalive_work() function walks the state table while holding xfrm_state_lock, then acquires x->lock in its callback, conflicting with the delete path that takes these locks in reverse order, causing an AB-BA deadlock. The fix splits the walk into two phases: first collect candidate states with references, then process them without nesting locks.

Risk Assessment

The deadlock can cause system hangs or network service failures, especially in environments with many concurrent IPsec tunnel and NAT operations.

Recommendation

Apply the Linux kernel update containing the fix for this vulnerability. If not possible, mitigate risk by avoiding concurrent SA deletion during NAT keepalive activity.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: xfrm: avoid lock inversion in nat keepalive work nat_keepalive_work() walks the state table while xfrm_state_walk() holds net->xfrm.xfrm_state_lock. Its callback then acquires x->lock, which conflicts with the delete path taking the same locks in reverse order via xfrm_state_delete() and __xfrm_state_delete(). This creates an AB-BA deadlock that is reported by lockdep when a NAT keepalive worker races with SA deletion. Fix this by splitting the keepalive walk into two phases. First, collect the candidate states while the walk holds xfrm_state_lock and take a reference on each state. Then, after the walk completes, process each collected state and acquire x->lock without nesting it under xfrm_state_lock.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS