CVE-2026-97602: inet: frags: invalidate queues before flushing them

Published Sep 25, 2026
·
Updated

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

inet: frags: invalidate queues before flushing them

fqdirpreexit() flushes the skbs from incomplete queues without changing their completion state. A fragment which found a queue before highthresh was cleared can then acquire the queue lock and reuse stale reassembly metadata. A queue concurrently killed after fqdir->dead is set can instead become INETFRAGCOMPLETE|INETFRAGHASHDEAD while still holding its old skbs; skipping it because it is complete leaves those references behind until asynchronous fqdir teardown.

For IPv6, stale metadata can make ip6fragreasm() use the old nhoffset with a new skb and access memory out of bounds. The resulting heap corruption can be leveraged for local privilege escalation when unprivileged network namespaces are available. Unflushed fragments can also keep conntrack references alive after the conntrack per-net cleanup point.

Kill each incomplete queue, then flush every queue still owned by the dying rhashtable. HASHDEAD identifies that ownership, while complete queues without it are already owned by another destroy path and must be left alone. Releasing a timer reference removed by inetfragkill() is deferred to inetfragputn(), after the queue lock is dropped.

KASAN report:

BUG: KASAN: slab-out-of-bounds in ipv6fragrcv (net/ipv6/reassembly.c:289 (discriminator 2) net/ipv6/reassembly.c:229 (discriminator 2) net/ipv6/reassembly.c:391 (discriminator 2)) Write of size 1 at addr ff110001039c6e00 by task poc/771 Call Trace: ? ipv6fragrcv (net/ipv6/reassembly.c:289 (discriminator 2) net/ipv6/reassembly.c:229 (discriminator 2) net/ipv6/reassembly.c:391 (discriminator 2)) ipv6fragrcv (net/ipv6/reassembly.c:289 (discriminator 2) net/ipv6/reassembly.c:229 (discriminator 2) net/ipv6/reassembly.c:391 (discriminator 2)) ip6protocoldeliverrcu (net/ipv6/ip6input.c:479 (discriminator 5)) ip6inputfinish (net/ipv6/ip6input.c:534) ipv6rcv (include/net/dst.h:480 (discriminator 3) net/ipv6/ip6input.c:119 (discriminator 3) net/ipv6/ip6input.c:109 (discriminator 3) include/linux/netfilter.h:325 (discriminator 3) include/linux/netfilter.h:319 (discriminator 3) net/ipv6/ip6input.c:351 (discriminator 3)) packetsendmsg (net/packet/afpacket.c:3110 net/packet/afpacket.c:3142) x64syssendmmsg (net/socket.c:2883 net/socket.c:2880 net/socket.c:2880) The buggy address belongs to the object at ff110001039c6b40 which belongs to the cache skbuffsmallhead of size 704 The buggy address is located 0 bytes to the right of allocated 704-byte region [ff110001039c6b40, ff110001039c6e00)

BUG: KASAN: slab-out-of-bounds in ip6protocoldeliverrcu (net/ipv6/ip6input.c:423 (discriminator 1)) Read of size 1 at addr ff110001039c6e08 by task poc/771 Call Trace: ? ip6protocoldeliverrcu (net/ipv6/ip6input.c:423 (discriminator 1)) ip6protocoldeliverrcu (net/ipv6/ip6input.c:423 (discriminator 1)) ip6inputfinish (net/ipv6/ip6input.c:534) ipv6rcv (include/net/dst.h:480 (discriminator 3) net/ipv6/ip6input.c:119 (discriminator 3) net/ipv6/ip6input.c:109 (discriminator 3) include/linux/netfilter.h:325 (discriminator 3) include/linux/netfilter.h:319 (discriminator 3) net/ipv6/ip6input.c:351 (discriminator 3)) packetsendmsg (net/packet/afpacket.c:3110 net/packet/afpacket.c:3142) x64syssendmmsg (net/socket.c:2883 net/socket.c:2880 net/socket.c:2880) packetsendmsg (net/packet/afpacket.c:2959 net/packet/afpacket.c:3053 net/packet/afpacket.c:3142) x64syssendmmsg (net/socket.c:2883 net/socket.c:2880 net/socket.c:2880) The buggy address belongs to the object at ff110001039c6b40 which belongs to the cache skbuffsmallhead of size 704 The buggy address is located 8 bytes to the right of allocated 704-byte region [ff110001039c6b40, ff110001039c6e00)

Affected Software

1 affected component
Linux Linux kernel

Event History

Sep 25, 2026
CVE Published
via MITRE·10:22 AM
Data Sourced
via MITRE·10:22 AM
Description

Frequently Asked Questions

1

Who is most exposed to local privilege escalation from this issue?

Systems where unprivileged users can create or use network namespaces are exposed to the described local privilege-escalation path. The issue is in Linux kernel IP fragment reassembly, with IPv6 specifically identified as the path where stale metadata can cause an out-of-bounds memory access.

2

What must an attacker be able to do to trigger the vulnerable condition?

An attacker needs local capability to exercise network fragmentation and race fragment-queue teardown, including a fragment finding a queue before the fragment-directory threshold is cleared. The described privilege-escalation impact additionally depends on unprivileged network namespaces being available.

3

What is the potential impact besides memory corruption?

Unflushed fragments can retain conntrack references past conntrack per-network-namespace cleanup. This can leave references alive until asynchronous fragment-directory teardown.

4

Which fixes are referenced for this vulnerability?

The provided references identify fixes in stable kernel trees with commit IDs b9d77f1652e79e58eac48430d0431c329137efcc, 7cb5f4643a7fcdbfbee1fad3cdfc678add62d378, and bf3d6c44c84c57e8a4bb7f40ad95b64f9b0198ba.

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