CVE-2026-80848: xfrm: espintcp: fix UAF during close

Published Sep 4, 2026
·
Updated

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

xfrm: espintcp: fix UAF during close

ZDI reported and analyzed a race condition during close for espintcp sockets:

espintcpclose() frees emsg->skb via kfreeskb() without holding any socket lock. Concurrently, the xfrmtransreinject work queue invokes espoutputtcpfinish() -> espintcppushskb() -> espintcppushmsgs() -> skbsendsocklocked(), which reads the same skb as a data source.

Fix this by adding a synchronizercu() call after resetting skprot, since espoutputtcpfinish() runs under RCU and won't use a socket with skprot == &tcpprot. Simply taking the socket lock in espintcpclose() could lead to leaks, if espoutputtcpfinish() re-adds an skb in the slot we just freed. After this, the existing barrier() is no longer needed.

Affected Software

1 affected component
Linux Kernel

Event History

Sep 4, 2026
CVE Published
via MITRE·03:54 PM
Data Sourced
via MITRE·03:54 PM
Description

Frequently Asked Questions

1

What condition is required to trigger this issue?

The issue requires a race while an espintcp socket is closing: the close path frees an skb while concurrent xfrm_trans_reinject work processes that same skb through esp_output_tcp_finish().

2

Which systems are exposed?

Linux kernel systems using espintcp sockets are relevant. The provided information does not identify affected kernel versions or state whether espintcp is enabled by default.

3

What does the fix change?

The fix resets sk_prot and then waits with synchronize_rcu() before freeing the skb. This prevents RCU-protected esp_output_tcp_finish() processing from using the socket after its protocol has been switched back to tcp_prot.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203