CVE-2026-97609

Description

A flaw was found in the Linux kernel's netfilter subsystem. An improper cleanup sequence during the unloading of the connection tracking timeout module creates a race condition with active timeout operations. A local user could exploit this flaw to trigger a use-after-free condition on released memory, leading to a Denial of Service (DoS) through a system crash or potentially privilege escalation.

Statement

A moderate severity use-after-free flaw was found in the Linux kernel's netfilter connection tracking timeout (nfnetlink_cttimeout) subsystem. During module unload, cttimeout_exit() unregisters the per-net operations and frees the per-net timeout storage before the nf_ct_timeout hook is cleared, so a concurrent nf_ct_set_timeout() call can dereference the stale hook and read the already-freed per-net timeout list, as reported by KASAN in ctnl_timeout_find_get(). A local attacker with the ability to unload kernel modules (CAP_SYS_MODULE) and to manage netfilter rules (CAP_NET_ADMIN) could win this race window and cause a kernel crash, resulting in a denial of service; the CVE description notes potential privilege escalation, but the impact confirmed by the available evidence is denial of service.

Red Hat Enterprise Linux 9 and 10 (including kernel-rt), Red Hat In-Vehicle OS 2, and OpenShift Container Platform releases shipping RHEL CoreOS 9 are affected. The fix for these products is currently deferred because the flaw is rated Moderate and successful exploitation requires privileged local access and winning a narrow race window, so the residual risk is limited to local denial of service on systems where unprivileged users cannot unload kernel modules or reconfigure netfilter rules. Red Hat Enterprise Linux 6, 7, and 8 (including ELS streams and kernel-rt) and OpenShift Container Platform releases shipping RHEL CoreOS 8 are not affected because the vulnerable code is not present in those kernels.

Red Hat rates this flaw Moderate with a CVSS 3.1 score of 5.5 (AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H), lower than the upstream CVEORG rating of 7.0 (AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H), because the assessed confirmed impact is to availability only; the confidentiality and integrity impacts assumed in the upstream scoring are not established by the available evidence.

Mitigation

Mitigation for this issue is either not available or the currently available options do not meet the Red Hat Product Security criteria comprising ease of use and deployment, applicability to widespread installation base, or stability.

Common Vulnerability Scoring System (CVSS) Score Details

Info alert:Important note

CVSS scores for open source components depend on vendor-specific factors (e.g. version or build chain). Therefore, Red Hat's score and impact rating can be different from NVD and other vendors. Red Hat remains the authoritative CVE Naming Authority (CNA) source for its products and services (see Red Hat classifications).

The following CVSS metrics and score provided are preliminary and subject to review.

CVSS v3 Score Breakdown

Red HatNVDcve.org
Base Score5.5N/A7
Attack VectorLocalN/ALocal
Attack ComplexityLowN/AHigh
Privileges RequiredLowN/ALow
User InteractionNoneN/ANone
ScopeUnchangedN/AUnchanged
ConfidentialityNoneN/AHigh
Integrity ImpactNoneN/AHigh
Availability ImpactHighN/AHigh

Vector

Red Hat: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

cve.org: CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H

Understanding the Weakness (CWE)

Confidentiality

Technical Impact: Read Memory

If the expired pointer is used in a read operation, an attacker might be able to control data read in by the application.

Availability

Technical Impact: DoS: Crash, Exit, or Restart

If the expired pointer references a memory location that is not accessible to the product, or points to a location that is "malformed" (such as NULL) or larger than expected by a read or write operation, then a crash may occur.

Integrity,Confidentiality,Availability

Technical Impact: Execute Unauthorized Code or Commands

If the expired pointer is used in a function call, or points to unexpected data in a write operation, then code execution may be possible.

Frequently Asked Questions

Want to get errata notifications? Sign up here.