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

tracing: Fix resource leak on mmiotrace trace_pipe close

The mmiotrace tracer was added May 12th 2008. At that time, resources
created in pipe_open() could not be freed because there was not
pipe_close function pointer of the tracer. The pipe_close function pointer
was added in December 7th, 2009, but the mmiotrace tracer was not updated.

mmio_pipe_open() allocates a header_iter and takes a pci_dev reference
when trace_pipe is opened. mmio_close() frees them, but it was only
wired to the tracer's .close callback.

tracing_release_pipe() invokes .pipe_close, not .close, when the
trace_pipe file is released. As a result, closing trace_pipe with the
mmiotrace tracer active leaked the header_iter allocation and left a
stale pci_dev reference.

Set .pipe_close to mmio_close, matching how function_graph wires both
callbacks to the same handler.

Note, if the trace_pipe is read to completion, it will clean up the
resources, but if one were to run:

# head -n 1 /sys/kernel/tracing/trace_pipe
VERSION 20070824

Over and over again, it would trigger a massive leak.
Published: 2026-08-10
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability resides in the Linux kernel’s tracing subsystem. When the mmiotrace tracer is active, opening /sys/kernel/tracing/trace_pipe allocates a header iterator and holds a reference to a PCI device, but the tracer’s close callback does not release these resources. The kernel’s pipe release logic mistakenly calls the tracer’s .pipe_close method instead of .close, leaving unmanaged allocations and stale references. Repeatedly reading the trace_pipe without fully consuming it causes a growing leak that can exhaust system memory and destabilize the kernel. The weakness is a missing release of heap memory, matching CWE-772. The impact is a local denial‑of‑service condition where an attacker can trigger a memory exhaustion by repeatedly accessing the trace pipe. Access to the tracing interface typically requires elevated privileges, so the threat is limited to privileged or compromised users.

Affected Systems

Linux kernel installations that enable the mmiotrace tracer are affected. No specific kernel version range is documented, but the patch was committed in early 2026, indicating that current kernel releases prior to that commit are vulnerable. All distributions shipping the Linux kernel prior to the patch are at risk.

Risk and Exploitability

The risk is moderate to high due to the potential for a denial‑of‑service if the vulnerable process can repeatedly open and read the trace_pipe. The exploitability requires ability to access the tracing interface, which usually needs root or kernel‑tracing privileges, so the attack vector is local privileged. The EPSS score is not available, and the vulnerability is not listed in the CISA KEV catalog. Nonetheless, the documented massive leak suggests it could be actively exploited in environments with unrestricted tracing access.

Generated by OpenCVE AI on August 10, 2026 at 14:33 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply a Linux kernel update that includes the mmiotrace pipe_close fix, which wires mmio_close to the tracer’s .pipe_close callback.
  • If a kernel update is not immediately possible, limit usage of the mmiotrace tracer or disable it by setting tracing options to a different tracer, thereby preventing the resource leak.
  • Avoid repeatedly reading /sys/kernel/tracing/trace_pipe without consuming all data; ensure complete reads or close the pipe promptly to allow automatic cleanup.

Generated by OpenCVE AI on August 10, 2026 at 14:33 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

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

Type Values Removed Values Added
Weaknesses CWE-772

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 resource leak on mmiotrace trace_pipe close The mmiotrace tracer was added May 12th 2008. At that time, resources created in pipe_open() could not be freed because there was not pipe_close function pointer of the tracer. The pipe_close function pointer was added in December 7th, 2009, but the mmiotrace tracer was not updated. mmio_pipe_open() allocates a header_iter and takes a pci_dev reference when trace_pipe is opened. mmio_close() frees them, but it was only wired to the tracer's .close callback. tracing_release_pipe() invokes .pipe_close, not .close, when the trace_pipe file is released. As a result, closing trace_pipe with the mmiotrace tracer active leaked the header_iter allocation and left a stale pci_dev reference. Set .pipe_close to mmio_close, matching how function_graph wires both callbacks to the same handler. Note, if the trace_pipe is read to completion, it will clean up the resources, but if one were to run: # head -n 1 /sys/kernel/tracing/trace_pipe VERSION 20070824 Over and over again, it would trigger a massive leak.
Title tracing: Fix resource leak on mmiotrace trace_pipe close
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-10T11:59:45.965Z

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

Link: CVE-2026-68175

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-10T19:00:04Z

Weaknesses
  • CWE-772

    Missing Release of Resource after Effective Lifetime