---
id: "CVE-2026-98442"
kind: "vulnerability"
aliases: ["CVE-2026-98442"]
title: "Linux kernel: connection tracking helper use-after-free can crash or corrupt memory"
severity: "unknown"
cvss: null
epss: null
exploited: false
status: "open"
category: "runtime"
products: []
ecosystems: []
tags: ["kernel", "linux", "net-sched", "netfilter", "runtime"]
not_affected_if: []
published_at: "2026-10-18T16:16:54+00:00"
first_seen_at: "2026-10-23T21:57:15+00:00"
updated_at: "2026-10-25T05:27:31+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-98442", "first_seen_at": "2026-10-23T21:57:15+00:00"}]
---

# Linux kernel: connection tracking helper use-after-free can crash or corrupt memory

In the Linux kernel's act_ct traffic-control action, connection-tracking helpers store a raw pointer to an extension area that can be reallocated when more extensions are added, leaving a dangling pointer in the expectations list. Freeing that stale pointer later is a use-after-free, which the sources do not say is remotely triggerable or what exact impact an attacker gets.

_Summary, check and fix written by a model from the sources; labelled as such._

## Timeline

- 2026-10-23T21:57:15+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-98442

## From the sources

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

net/sched: act_ct: fix helper UAF due to extensions realloc

While calling the helpers, a raw pointer to the extensions area is
wired into expectations list:

  -> nf_ct_helper()
   -> helper->help()
    -> nf_ct_expect_related_report()
     -> nf_ct_expect_insert()
      -> hlist_add_head_rcu(&exp->lnode, &master_help->expectations)

In case the connection is not confirmed yet, more extensions can be
added afterwards with *_ext_add() calls reallocating the extension
space and leaving the now invalid pointer in the expectations list
that is later accessed while removing the expectation.

Make sure that helpers are called at the end after all the other
extensions are already added.

Note that the helper rejection now leaves the mark and labels set,
but that's not different from how the NAT was handled before or how
the mark and the labels were handled on confirmation failure.  And
there are no atomicity guarantees provided by the API anyway.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
