CVE-2026-90237

CVE-2026-90237

High · published September 17, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
5.4
In the wild
Unconfirmed
What it is

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

netfilter: nft_ct: move custom expectation support to helper

Originally, the ct expectation support called nf_ct_helper_ext_add() for

confirmed conntracks, which is invalid, triggering a splat. This was

fixed by commit 1710eb913bdc ("netfilter: nft_ct: skip expectations for

confirmed conntrack") which restricted it to unconfirmed conntracks.

However, early insertion of expectations into the expectations list when

the conntrack is unconfirmed leads to stale entries pointing to the

wrong hlist_head through .pprev due to ct extension reallocation.

Commit 7c9664351980 ("netfilter: move nat hlist_head to nf_conn") moved

the nat hlist_head to nf_conn for this reason:

1. ...

2. When reallocation of extension area occurs we need to fixup the

bysource hash head via hlist_replace_rcu.

I'd rather not increase the size of the struct nf_conn for this feature

has very limited scope: only one expectation can be created at a time

given expect_clash() will make nf_ct_expect_related() reports EBUSY.

For this reason, relax nf_ct_expect_related() not to drop packets in

case expectation creation fails, therefore, expectation creation becomes

best effort.

To address this issue, add an internal ct helper and attach it to the

conntrack entry to streamline the custom ct expectation support with

existing ct helpers.

Expose a new nf_conntrack_helper_release() function to release the

internal helper that is allocated and attached to the conntrack entry to

create the custom expectations. The nft_ct module removal always waits

for rcu grace period, then the NULL helper callback is observed after

this.

This patch also restricts the creation of expectations to different

helpers other than this custom helper that is created for this type of

expectations.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00165 · 5.4th percentile
Published
2026-09-17T21:17Z
References (2)
EPSS history
Timeline
  • 19 SEP 03:55Z
    EPSS moved — → 0%
    epss
  • 17 SEP 16:07Z
    netfilter: nft_ct: move custom expectation support to helper
    cvelistv5