CVE-2026-53175
Critical · 9.8CVSS
9.8
EPSS
0.3%
Published
Jun 25, 2026
CISA due date
—
Cloudanix analysis
A Linux networking bug can let specially timed fragmented traffic crash or potentially compromise systems while network namespaces are being shut down.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- High
- Impact
- Privilege Gain
- Component
- OS kernel
- Class
- Use After Free
- Remediation
- Patch
- Effort
- Medium
- Patch risk
- Low
What it actually does
This is a Linux kernel use-after-free in the IP fragment reassembly subsystem during network namespace teardown. When a network namespace is being destroyed, the kernel flushes incomplete fragment queues and frees queued socket buffers, but vulnerable kernels leave internal fragment queue pointers referencing freed memory. A packet fragment that already found the queue before the flush can later resume, acquire the queue lock, and dereference or write through those stale pointers. The affected shared code path is used by IPv4 fragmentation, IPv6 fragmentation, nf_conntrack IPv6 reassembly, and 6LoWPAN reassembly. Successful exploitation could cause kernel memory corruption, kernel crash, or potentially privilege escalation depending on allocator state, hardening, and exploit reliability.
Why it matters to the business
The most likely operational impact is denial of service through kernel crashes or instability on systems processing fragmented network traffic while network namespaces are being created and destroyed, such as container hosts, Kubernetes nodes, CI runners, network appliances, and systems using namespace-heavy isolation. Although public exploit maturity is currently listed as none, the flaw is in core Linux networking code and was published 47 days ago, so organizations should treat it as a routine kernel patching priority, especially where untrusted users or workloads can create network namespaces or send crafted fragmented traffic.
How an attack unfolds
An attacker attempts to create a race between fragmented network packet processing and teardown of a Linux network namespace. First, they cause or wait for a target network namespace to contain an incomplete fragment queue, such as by sending IPv4 or IPv6 fragments that do not complete reassembly. During namespace teardown, the kernel flushes the fragment queue and frees the queued socket buffers. In the vulnerable code path, some queue pointers still reference the freed buffers. If another fragment had already found the queue before the flush but had not yet taken the queue lock, it can resume after the flush, pass the completion check, and enter fragment insertion logic that reads from or writes to the freed buffer. In a simple case this produces a kernel oops, panic, or KASAN report. A more advanced attacker would try to shape heap allocations around the race to turn the stale pointer access into controlled memory corruption, but exploitation is timing-dependent and no public mature exploit is indicated by the provided data.
How to fix it
Apply Linux kernel updates from the relevant distribution or vendor that include the fix for the inet fragment queue teardown use-after-free. Because the provided input does not list affected package names or exact fixed versions, use vendor advisories for the deployed kernel stream and confirm that the patch resets rb_fragments, fragments_tail, and last_run_head in inet_frag_queue_flush() after flushing queued fragments. Prioritize upgrades on container hosts, orchestration nodes, virtualization platforms, CI/CD runners, network appliances, and systems allowing untrusted users or workloads to create network namespaces. If immediate patching is not possible, reduce exploitability by restricting untrusted namespace creation, limiting CAP_NET_ADMIN and similar privileges, disabling unprivileged user namespaces where operationally acceptable, minimizing exposure to fragmented traffic at network boundaries where safe, and monitoring for kernel crashes or networking oops events. Blocking all IP fragments can disrupt legitimate traffic and should be tested before broad deployment.
How to confirm the fix worked
Confirm the running kernel has been updated to a vendor build containing the fix, not merely that a package is installed on disk; compare `uname -r` and package inventory against the vendor advisory. Where source or build metadata is available, verify that inet_frag_queue_flush() clears the fragment queue state after freeing queued skbs, including rb_fragments, fragments_tail, and last_run_head. Reboot into the fixed kernel if required by the platform. Validate that container hosts and namespace-heavy systems are no longer running vulnerable kernels. Review firewall or network controls only as compensating measures; they do not prove remediation. For regression validation in test environments, exercise namespace create/destroy workflows with fragmented IPv4 and IPv6 traffic and confirm there are no kernel oops, panic, KASAN, or slab use-after-free messages associated with the fragment reassembly paths.
Typical attack path
- Gain the ability to influence fragmented IPv4, IPv6, nf_conntrack IPv6, or 6LoWPAN traffic reaching a Linux network namespace.
- Cause an incomplete fragment queue to exist by sending partial or malformed fragment sequences.
- Trigger, induce, or wait for network namespace teardown, for example through container, sandbox, or namespace lifecycle activity.
- Race an additional fragment so it has already located the fragment queue before teardown flushing but resumes after queued buffers have been freed.
- Cause the kernel fragment insertion path to dereference or modify stale pointers that still reference freed socket buffers.
- Achieve a kernel crash or, with significantly more reliability work, attempt kernel memory corruption for privilege escalation.
How to detect it
Look for evidence of prior exploitation primarily through host-level kernel telemetry, because this flaw does not create a distinctive application log entry. Review kernel logs, journald, dmesg, crash dumps, panic records, hypervisor reset events, and EDR kernel-event telemetry for use-after-free, slab corruption, general protection faults, or oops traces involving IP fragment reassembly and network namespace teardown. Pay particular attention to container hosts or systems with frequent namespace creation and destruction around the time of unexplained crashes. Network telemetry may show unusual volumes of incomplete, overlapping, malformed, or repeated IPv4/IPv6 fragments shortly before a crash, but fragmented traffic alone is not proof of exploitation. If KASAN, KFENCE, kernel crash dump collection, or panic-on-oops telemetry is enabled, search for stack frames referencing inet_frag_queue_flush(), inet_frag_queue_insert(), fqdir_pre_exit(), IPv6 fragment reassembly, nf_conntrack_reasm6, or 6LoWPAN reassembly. Correlate these events with container stop/delete events, namespace teardown activity, and external or internal sources sending fragmented packets.
- BUG: KASAN: slab-use-after-free
- slab-use-after-free
- use-after-free in inet_frag_queue_insert
- inet_frag_queue_insert
- inet_frag_queue_flush
- fqdir_pre_exit
- nf_conntrack_reasm6
- ip6_frag_queue
- ip_frag_queue
- inet_frag_find
- fragments_tail
- last_run_head
- general protection fault
- kernel BUG at net/ipv4/inet_fragment.c
- kernel BUG at net/ipv6/reassembly.c
- Oops:
- Kernel panic - not syncing
What your security team should do
- Inventory Linux systems that run containers, sandboxes, network namespaces, conntrack, IPv6, or 6LoWPAN and prioritize them for kernel patching.
- Apply vendor kernel updates containing the inet fragment queue flush fix and reboot systems into the fixed kernel.
- Restrict untrusted creation of user and network namespaces where possible, especially on multi-tenant or shared compute hosts.
- Limit CAP_NET_ADMIN and equivalent container privileges to trusted workloads only.
- Increase monitoring for kernel oops, panic, KASAN, and slab use-after-free events involving inet fragment reassembly functions.
- Review perimeter and host firewall handling of fragmented traffic; consider dropping suspicious fragments where this will not break required services.
- Track vendor advisories for exact fixed kernel versions because the affected_products and fixed_versions fields were not provided in the input.
- Treat the issue as moderate urgency: no KEV listing, no ransomware association, low EPSS, and no known public exploit maturity, but broad kernel prevalence and potential kernel memory corruption justify timely remediation.
The record
In the Linux kernel, the following vulnerability has been resolved: inet: frags: fix use-after-free caused by the fqdir_pre_exit() flush On netns teardown, fqdir_pre_exit() walks the fqdir rhashtable and flushes every fragment queue that is not yet complete using inet_frag_queue_flush(). That helper frees all the skbs queued on the fragment queue but does not set INET_FRAG_COMPLETE, and leaves q->fragments_tail and q->last_run_head pointing at the freed skbs. The queue itself stays in the rhashtable. fqdir_pre_exit() first lowers high_thresh to 0 to stop new queue lookups, but it cannot stop a fragment that already obtained the queue through inet_frag_find() earlier and stalled just before taking the queue lock. Once that fragment resumes after the flush and takes the queue lock, it passes the INET_FRAG_COMPLETE check and then dereferences the freed fragments_tail. inet_frag_queue_insert() reads FRAG_CB() and ->len of that pointer and, on the append path, writes ->next_frag, causing a slab use-after-free. IPv6, nf_conntrack_reasm6 and 6lowpan reassembly share the same flush path and are affected as well. Reset rb_fragments, fragments_tail and last_run_head in inet_frag_queue_flush() so a flushed queue no longer points at the freed skbs. A fragment that resumes after the flush and takes the queue lock then finds an empty queue and starts a new run instead of dereferencing the freed fragments_tail. ip_frag_reinit() already performed this reset after its own flush, so drop the now duplicate code there.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-119338 Tesseract is an open source OCR engine. CWE-416
- CVE-2026-119332 Ladybird is a truly independent web browser. CWE-416
- CVE-2026-119116 A use-after-free and double-free issue in the SetClient command handler of the… CWE-416
- CVE-2026-119378 SQLite before 3.54.0 contains a use-after-free vulnerability in the R-Tree extension that… CWE-416
- CVE-2026-119372 SQLite before 3.54.0 built with FTS3/FTS4 and SQLITE_ENABLE_FTS3_PARENTHESIS contains a… CWE-416
- CVE-2026-65586 Software installed and run as a non-privileged user may conduct improper GPU system calls… CWE-416
- CVE-2026-15466 Software installed and run as a non-privileged user may conduct improper GPU system calls… CWE-416
- CVE-2026-76031 Use after free in Input in Google Chrome prior to 156.0.8078.79 allowed a remote attacker… CWE-416