CVE-2026-80846

Summary

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

xfrm: drop ESP-in-TCP packets with no ingress device

ESP-in-TCP receives records through the TCP strparser. handle_esp() restores skb->dev from the saved skb_iif before passing the packet into the XFRM input path.

Queued TCP data can be processed after the original ingress device has been removed, for example during veth or net namespace teardown. In that case dev_get_by_index_rcu() returns NULL. The XFRM IPv4 and IPv6 input paths both expect skb->dev to be valid while building the route lookup, so queued ESP-in-TCP data can dereference a NULL device.

Drop the packet if the saved ingress device can no longer be resolved. Such a packet can no longer be routed through the normal XFRM receive path, and this preserves the existing behaviour for packets whose ingress device still exists.

Affected Software

VendorProductVersion RangeStatus
LinuxLinuxe27cca96cd68fa2c6814c90f9a1cfd36bb68c593 < 239d0f71af09dc2029fd4d730cb24b8c83aaa43aaffected
LinuxLinuxe27cca96cd68fa2c6814c90f9a1cfd36bb68c593 < f00235f9d12301183d61f75fbe4105506f3e5140affected
LinuxLinuxe27cca96cd68fa2c6814c90f9a1cfd36bb68c593 < 6af5cdb03819a5ce6e945992635c6c5e91045367affected
LinuxLinuxe27cca96cd68fa2c6814c90f9a1cfd36bb68c593 < 2dd1609cadff46c4b20ce53b91ab9cce1380456aaffected
LinuxLinuxe27cca96cd68fa2c6814c90f9a1cfd36bb68c593 < c296d25efbc840be24de83f56d43bc47e714ace9affected
LinuxLinuxe27cca96cd68fa2c6814c90f9a1cfd36bb68c593 < 328e40aa774b446969c69b654c52a051a95af8a1affected
LinuxLinuxe27cca96cd68fa2c6814c90f9a1cfd36bb68c593 < 7911e0236616487b89db6bd3ba3f408abd10eb23affected
LinuxLinuxe27cca96cd68fa2c6814c90f9a1cfd36bb68c593 < 943d95233b8b4a88994e244fcf466f8c403d63f1affected
LinuxLinuxe27cca96cd68fa2c6814c90f9a1cfd36bb68c593 < e1d7c5ac1c246ce5775f604515de0a59fbf2116eaffected
LinuxLinux5.6affected
LinuxLinux0 < 5.6unaffected
LinuxLinux5.10.269 <= 5.10.*unaffected
LinuxLinux5.15.220 <= 5.15.*unaffected
LinuxLinux6.1.187 <= 6.1.*unaffected
LinuxLinux6.6.156 <= 6.6.*unaffected
LinuxLinux6.12.108 <= 6.12.*unaffected
LinuxLinux6.18.49 <= 6.18.*unaffected
LinuxLinux7.1.13 <= 7.1.*unaffected
LinuxLinux7.2.3 <= 7.2.*unaffected
LinuxLinux7.3-rc1 <= *unaffected

Weaknesses

References