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

tracing: Fix union collision of module and refcnt for dynamic events

In 'struct trace_event_call', the 'module' pointer and the 'refcnt'
atomic variable share the same memory space in a union. For dynamic
events, the union member is 'refcnt', which acts as an active
reference counter.

When a dynamic event (such as kprobe, uprobe, fprobe, eprobe, or
wprobe) has a non-zero reference count (e.g. due to active event
triggers or perf attachments), its 'call->module' evaluates to a
small non-zero integer instead of NULL.

When filtering or setting events for a specific module (e.g., writing
':mod:<module>' to 'set_event'), the code in
'__ftrace_set_clr_event_nolock()' and 'update_event_fields()' reads
'call->module' directly without checking whether the event is dynamic.
This causes the kernel to treat the small integer (refcnt) as a
'struct module' pointer, leading to a NULL/invalid pointer dereference
(Oops) when dereferencing the module name.

Fix this by ensuring that the 'TRACE_EVENT_FL_DYNAMIC' flag is checked
before treating 'call->module' as a valid pointer in these code paths.
Published: 2026-08-10
Score: 4.4 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

An internal pointer collision in the Linux kernel’s tracing subsystem causes the reference counter of a dynamic event to be misinterpreted as a module pointer. When the kernel code handling the set_event filter reads this corrupted value without verifying the dynamic flag, it dereferences the small integer as a module structure, triggering a NULL or invalid pointer dereference. This leads to a kernel oops and brings the entire system down, effectively denying service. The flaw aligns with CWE-843 (type confusion). Based on the description, the vulnerability is exercised when a user manipulates the set_event interface for a module name while a dynamic tracing event has an active reference count.

Affected Systems

Any Linux kernel build that includes the tracing subsystem with the struct trace_event_call layout described is vulnerable, encompassing all releases prior to the commit that added the dynamic flag check. The affected vendor is Linux, and the product scope covers all kernel versions up to the one in which the fix was merged. Precise version ranges are not enumerated in the available data.

Risk and Exploitability

With a CVSS score of 4.4 and an EPSS score below 1 %, the overall risk is moderate and the likelihood of exploitation is very low. The vulnerability is not listed in the CISA KEV catalog, indicating no public exploits have been identified to date. It is inferred that an attacker would need local access that allows creation or modification of dynamic tracing events and the ability to invoke the set_event filter; such capabilities typically require root or kernel debugging privileges. Once triggered, the kernel crash will require a reboot, resulting in temporary loss of availability for the affected host.

Generated by OpenCVE AI on August 13, 2026 at 09:35 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes the commit fixing the union collision.
  • If an immediate update is not possible, restrict or disable the use of dynamic tracing events such as kprobe, uprobe, fprobe, eprobe, and wprobe until the patch is applied.
  • Avoid configuring set_event filters that target module names while the vulnerability is present.

Generated by OpenCVE AI on August 13, 2026 at 09:35 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 13 Aug 2026 08:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-476

Wed, 12 Aug 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-843
References
Metrics threat_severity

None

cvssV3_1

{'score': 4.4, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Mon, 10 Aug 2026 15:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-476

Mon, 10 Aug 2026 12:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: tracing: Fix union collision of module and refcnt for dynamic events In 'struct trace_event_call', the 'module' pointer and the 'refcnt' atomic variable share the same memory space in a union. For dynamic events, the union member is 'refcnt', which acts as an active reference counter. When a dynamic event (such as kprobe, uprobe, fprobe, eprobe, or wprobe) has a non-zero reference count (e.g. due to active event triggers or perf attachments), its 'call->module' evaluates to a small non-zero integer instead of NULL. When filtering or setting events for a specific module (e.g., writing ':mod:<module>' to 'set_event'), the code in '__ftrace_set_clr_event_nolock()' and 'update_event_fields()' reads 'call->module' directly without checking whether the event is dynamic. This causes the kernel to treat the small integer (refcnt) as a 'struct module' pointer, leading to a NULL/invalid pointer dereference (Oops) when dereferencing the module name. Fix this by ensuring that the 'TRACE_EVENT_FL_DYNAMIC' flag is checked before treating 'call->module' as a valid pointer in these code paths.
Title tracing: Fix union collision of module and refcnt for dynamic events
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-17T05:00:15.155Z

Reserved: 2026-07-30T09:28:09.372Z

Link: CVE-2026-68174

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-10T13:20:04.213

Modified: 2026-08-17T05:18:18.927

Link: CVE-2026-68174

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-10T11:59:44Z

Links: CVE-2026-68174 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-13T09:45:03Z

Weaknesses
  • CWE-843

    Access of Resource Using Incompatible Type ('Type Confusion')