Skip to main content

Linux Kernel EUVDEUVD-2026-40983

| CVE-2026-53349 MEDIUM
2026-07-01 Linux GHSA-qf7g-7vpq-493r
5.5
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
vuln.today AI
4.1 MEDIUM

CAP_SYS_MODULE in the initial namespace is root-equivalent (PR:H); orchestrated module-unload-with-live-expectation sequence raises complexity to AC:H; impact is kernel crash only (A:H, C:N, I:N).

3.1 AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:H
4.0 AV:L/AC:H/AT:P/PR:H/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE
4.4 MEDIUM
AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H
Red Hat
5.5 MEDIUM
qualitative

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

5
Analysis Generated
Jul 22, 2026 - 20:46 vuln.today
CVSS changed
Jul 22, 2026 - 19:22 NVD
5.5 (MEDIUM)
Patch available
Jul 01, 2026 - 15:16 EUVD
CVE Published
Jul 01, 2026 - 13:32 cve.org
UNKNOWN (no severity yet)
CVE Published
Jul 01, 2026 - 13:32 nvd
MEDIUM 5.5

DescriptionNVD

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

netfilter: nf_conntrack: destroy stale expectfn expectations on unregister

NAT helpers such as nf_nat_h323 store a raw pointer to module text in exp->expectfn (e.g. ip_nat_q931_expect). nf_ct_helper_expectfn_unregister() only unlinks the callback descriptor and never walks the expectation table, so an expectation pending at module removal survives with a dangling exp->expectfn into freed module text.

When the expected connection arrives, init_conntrack() invokes exp->expectfn(), now a stale pointer into the unloaded module. Reproduced on a KASAN build by loading the H.323 helpers, creating a Q.931 expectation, unloading nf_nat_h323, then connecting to the expected port:

Oops: int3: 0000 [#1] SMP KASAN NOPTI RIP: 0010:0xffffffffa06102d1 init_conntrack.isra.0 (net/netfilter/nf_conntrack_core.c:1862) nf_conntrack_in (net/netfilter/nf_conntrack_core.c:2049) ipv4_conntrack_local (net/netfilter/nf_conntrack_proto.c:223) nf_hook_slow (net/netfilter/core.c:619) __ip_local_out (net/ipv4/ip_output.c:120) __tcp_transmit_skb (net/ipv4/tcp_output.c:1715) tcp_connect (net/ipv4/tcp_output.c:4374) tcp_v4_connect (net/ipv4/tcp_ipv4.c:345) __sys_connect (net/socket.c:2167) Modules linked in: nf_conntrack_h323 [last unloaded: nf_nat_h323]

Reaching the dangling state requires CAP_SYS_MODULE in the initial user namespace to remove a NAT helper that still has live expectations, so this is a robustness fix; leaving an expectation pointing at freed text is wrong regardless.

Add nf_ct_helper_expectfn_destroy(), which walks the expectation table and drops every expectation whose ->expectfn matches the descriptor being torn down. Call it from each NAT helper's exit path after the existing RCU grace period, so no expectation outlives the code it points at and no extra synchronize_rcu() is introduced. With the fix, the same reproducer runs to completion without the Oops.

AnalysisAI

Dangling function pointer in the Linux kernel's netfilter connection tracking subsystem (nf_conntrack) causes a kernel oops when a NAT helper module is unloaded while live expectations referencing its text remain in the expectation table. Specifically, NAT helpers such as nf_nat_h323 store raw pointers to module code in exp->expectfn; nf_ct_helper_expectfn_unregister() unlinks the callback descriptor without purging matching expectations, so when the expected connection subsequently arrives, init_conntrack() dereferences freed module text and crashes the kernel. No public exploit has been identified at time of analysis, and EPSS sits at 0.16% (6th percentile), consistent with the local, high-privilege exploitation path required.

Technical ContextAI

The vulnerability resides in net/netfilter/nf_conntrack_core.c within the Linux kernel's connection tracking infrastructure. NAT application-layer gateway (ALG) helpers - such as nf_nat_h323, which handles H.323/Q.931 NAT - register expectfn callbacks by storing a raw function pointer (exp->expectfn) into pending conntrack expectation entries. The kernel module teardown path for NAT helpers calls nf_ct_helper_expectfn_unregister() to remove the callback descriptor from a global list, but never iterates the live expectation table to clear or drop expectations that still hold a pointer to the now-unloaded module's text segment. When the expected connection arrives later, init_conntrack() (nf_conntrack_core.c:1862) calls the stale exp->expectfn pointer, which now points into unmapped or reallocated kernel memory, producing a kernel Oops as demonstrated in the KASAN reproducer trace. The root cause is a use-after-free on a function pointer - semantically equivalent to CWE-416 - though no CWE is formally assigned. CPE data (cpe:2.3:a:linux:linux:*) covers all Linux kernel versions from the introduction commit f587de0e2feb9eb9b94f98d0a7b7437e4d6617b4 onward until the respective fix commits landed in each stable series.

RemediationAI

The primary fix is to upgrade to a patched kernel version: 6.1.176, 6.6.143, 6.12.94, 6.18.36, 7.0.13, or 7.1 (mainline), which introduce nf_ct_helper_expectfn_destroy() to walk the expectation table and purge entries pointing to a module being torn down. Fix commits are referenced at https://git.kernel.org/stable/c/fbfde85308b99938a6092c48753214d190ece48d and sibling commits for each stable branch. For systems that cannot be patched immediately, a practical compensating control is to avoid dynamically loading and unloading nf_nat_h323 or other NAT ALG helper modules on production systems; if H.323 ALG support is not operationally required, unload and blacklist nf_conntrack_h323 and nf_nat_h323 permanently (add them to /etc/modprobe.d/blacklist.conf) - this eliminates the attack path at the cost of losing H.323 NAT traversal capability. Additionally, restricting CAP_SYS_MODULE via seccomp, SELinux, or AppArmor policy on internet-exposed systems reduces the risk that an attacker with prior local access can trigger the condition. No vendor advisory URL beyond the kernel stable git tree has been independently identified.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

Share

EUVD-2026-40983 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy