CVE-2026-53175CWE-416CWE-825

CVE-2026-53175

Critical · published June 25, 2026

CVSS v3.1
9.8
EPSS
0%
Percentile
23.0
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
9.8 · CRITICAL
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00313 · 23.0th percentile
Weaknesses
CWE-416 · Use After Free; CWE-825 · Expired Pointer Dereference
Published
2026-06-25T13:16Z
Affected products (18)
ProductVersionsFixed in
linux/linux_kernel≥ 6.18.3, < 6.18.366.18.36
linux/linux_kernel≥ 6.19.1, < 7.0.137.0.13
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (8)
EPSS history
Timeline
  • 25 JUN 08:38Z
    inet: frags: fix use-after-free caused by the fqdir_pre_exit() flush
    cvelistv5