CVE-2025-68768

inet: frags: flush pending skbs in fqdir_pre_exit()

published January 13, 2026

CVSS
—
EPSS
0%
Percentile
9.5
In the wild
Unconfirmed
What it is

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

inet: frags: flush pending skbs in fqdir_pre_exit()

We have been seeing occasional deadlocks on pernet_ops_rwsem since

September in NIPA. The stuck task was usually modprobe (often loading

a driver like ipvlan), trying to take the lock as a Writer.

lockdep does not track readers for rwsems so the read wasn't obvious

from the reports.

On closer inspection the Reader holding the lock was conntrack looping

forever in nf_conntrack_cleanup_net_list(). Based on past experience

with occasional NIPA crashes I looked thru the tests which run before

the crash and noticed that the crash follows ip_defrag.sh. An immediate

red flag. Scouring thru (de)fragmentation queues reveals skbs sitting

around, holding conntrack references.

The problem is that since conntrack depends on nf_defrag_ipv6,

nf_defrag_ipv6 will load first. Since nf_defrag_ipv6 loads first its

netns exit hooks run _after_ conntrack's netns exit hook.

Flush all fragment queue SKBs during fqdir_pre_exit() to release

conntrack references before conntrack cleanup runs. Also flush

the queues in timer expiry handlers when they discover fqdir->dead

is set, in case packet sneaks in while we're running the pre_exit

flush.

The commit under Fixes is not exactly the culprit, but I think

previously the timer firing would eventually unblock the spinning

conntrack.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00201 · 9.5th percentile
Published
2026-01-13T15:28Z
EPSS history
Timeline
  • 13 JAN 15:28Z
    inet: frags: flush pending skbs in fqdir_pre_exit()
    cvelistv5