data built 2026-10-19T13:16:53Z

Look up another CVE · open CVE-2026-80668 in the interactive tracker

CVE-2026-80668

netfilter: nf_conntrack_expect: use conntrack GC to reap expectations

9.8 EPSS 0.6% AV:N

Published 2026-08-28 (2 months ago) by the Linux kernel CNA. Subsystem include/net. Debian urgency: not yet assigned.

What to do, per Debian release

Debian's own status for CVE-2026-80668 in every release this site tracks, and what each one means in practice. Every status below is the one the Debian Security Team publishes for this CVE. source

ReleaseStatus VersionWhat this means
Debian 12bookwormvulnerable6.1.190-1No fix published anywhere yet, neither in Debian nor upstream for the series bookworm tracks. Watch the Debian tracker page for this CVE. Advisories for bookworm have historically landed a median of 23 days after publication.
Debian 13trixievulnerable6.12.113-1No fix published anywhere yet, neither in Debian nor upstream for the series trixie tracks. Watch the Debian tracker page for this CVE. Advisories for trixie have historically landed a median of 11 days after publication.
Debian 14forkyfixed7.1.5-1Update the kernel and reboot. Fixed in 7.1.5-1. A running kernel keeps the old code until the machine restarts.
Debian unstablesidfixed7.1.5-1Update the kernel and reboot. Fixed in 7.1.5-1. A running kernel keeps the old code until the machine restarts.

The vulnerability

What the bug is

This patch replaces the timer API by GC worker approach for expectations, as it already happened in many other subsystems. Use the existing conntrack GC worker to iterate over the local list of expectations in the master conntrack to reap expired expectations. Check IPS_HELPER_BIT to run GC for expectations, set it on for nft_ct expectation which nevers sets it. Hold the expectation spinlock while iterating over the master conntrack expectation list to synchronize with nf_ct_remove_expectations(). This also performs runtime packet path garbage collection through the expectation insertion and lookup functions while walking over one of the chains of the global expectation hashtables. Unconfirmed conntrack entries are skipped since ct->ext can be reallocated and dying are skipped since those will be gone soon. Set on IPS_HELPER_BIT if the helper ct extension is added, then the new GC worker does not need to bump the ct refcount to check if the ct->ext helper is available. This removes the extra bump on the refcount for expectation timers, this allows to remove several nf_ct_expect_put() calls after the unlink, after this update only refcount remains at 1 while on the expectation hashes. This patch implicitly addresses a race with the existing timer API allowing an expectation to access a stale exp->master pointer which has been already released when expectation removal loses races with an expiring timer, ie. timer_del() reporting false. Add a new NF_CT_EXPECT_DEAD flag to reap this expectation via GC. This is needed by nf_conntrack_unexpect_related() which is called in error paths to invalidate newly created expectations that has been added into the hashes. These expectactions cannot be inmediately released as GC or nf_ct_remove_expectations() could race to make it. On expectation insert, the runtime GC reaps stale expectations before checking the expectation limit set by policy. Set current timestamp in nf_ct_expect_alloc(), then add the expectation policy timeout (or custom timeout specified added on top of this) to specify the expectation lifetime.

Where it lives

The fix touches these files. If the subsystem is one you do not use, the practical exposure is lower, though the package is still the vulnerable one.

include/net/netfilter/nf_conntrack_expect.h
include/uapi/linux/netfilter/nf_conntrack_common.h
net/netfilter/nf_conntrack_core.c
net/netfilter/nf_conntrack_expect.c
net/netfilter/nf_conntrack_h323_main.c
net/netfilter/nf_conntrack_helper.c
net/netfilter/nf_conntrack_netlink.c
net/netfilter/nf_conntrack_sip.c
net/netfilter/nft_ct.c

What this is
NETFILTERMAINTAINERS section matched on include/net/netfilter/ · netfilter-devel@vger.kernel.org · Maintained
Kernel module
nf_conntrack

Check it on the machine

grep -wE 'CONFIG_NETFILTER|CONFIG_NF_CONNTRACK' /boot/config-$(uname -r)

Reads the booted kernel's own configuration, on the machine and nowhere else. =y is built in, =m is a module, and an is not set line means the code is not there.

lsmod | grep -w nf_conntrack

Prints a line if that module is loaded right now, and nothing if it is not. One that is not loaded can still be loaded later by anything that needs it.

Show whether Debian builds this, per release

Debian builds this as a loadable module. Every release below compiles it as a module on every flavour, so whether the code is in the running kernel depends on whether that module is loaded.

  • bookworm, trixie, forky, sidm
m
a loadable module on every flavour - check lsmod, can be blacklisted
Build switches
CONFIG_NETFILTER, CONFIG_NF_CONNTRACK
Reads as
all on means the file is compiled; any one off means it is not.

From the configuration Debian publishes for every kernel flavour it builds. It covers only the architectures Debian ships a linux-config package for, and nothing about a kernel you built yourself. Debian's own status above stays authoritative about the source package.MAINTAINERS kbuild Makefiles Debian linux-config packages

Signals

Published
2026-08-28 (2 months ago)source
CVSS
9.8 critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:Hsource recompute it
Attack vector
network (AV:N)source
EPSS
0.55%, higher than 45.0% of all CVEssource
CISA KEV
not listedthe KEV catalogue
Debian urgency
not yet assignedsource
Subsystem
include/net

Upstream fixes

The versions the CNA records as introducing and fixing this, and the commit for each. source

IntroducedFixed inCommit
7.07.1.57ec786f4230c
7.07.2b8b09dc2bf35
6.1.17600
6.6.14300
6.12.9400
6.18.2400
6.19.1400

Why the CNA scored it this way

Quoted from the kernel CNA's own scoring file, word for word. A highlighted metric carries the most severe value CVSS v3.1 defines for it, which is what pushes the score up. source

AV:NAttack vector, network
Remote attackers can create expectations via conntrack ALG helpers (FTP, SIP, H.323, etc.) on internet-facing NAT/firewalls when processing attacker packets in nf_confirm, then trigger the timer-vs-teardown race during master connection expiry.
AC:LAttack complexity, low
The attacker controls both sides of the race by opening/closing the master connection and timing traffic against the expectation timer; parallel sessions allow reliable retries without depending on uncontrollable layout or victim state.
PR:NPrivileges required, none
Only initial helper/NAT configuration needs admin privilege; exploitation requires no kernel credentials—a remote protocol client can create expectations and drive teardown on typical edge gateways and VoIP/NAT deployments.
UI:NUser interaction, none
No victim interaction beyond the attacker's own network sessions; triggering helper-driven expectation creation and subsequent connection teardown does not require any local user action.
S:UScope, unchanged
Impact is kernel heap use-after-free within the same host security domain and does not cross VM, container, or IOMMU boundaries absent separate escalation.
C:HConfidentiality impact, high
nf_ct_unlink_expect and nf_ct_find_expectation dereference exp->master after the master nf_conn is freed when timer_delete fails, a classic slab UAF enabling arbitrary kernel memory disclosure via heap grooming.
I:HIntegrity impact, high
Freed struct nf_conn reuse lets an attacker corrupt kernel heap metadata or object contents, defensibly enabling arbitrary write or control-flow hijack beyond the immediate stale pointer dereference.
A:HAvailability impact, high
Accessing the freed master conntrack in the expectation timeout or lookup path can cause immediate kernel oops/panic, and UAF corruption can crash or hang the system even during failed exploit attempts.