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

tracing: Reject incomplete event filter expressions

A non-empty expression normally finishes in predicate_parse()'s inner
loop, which resolves the pending logical operators before jumping to
finalization. If the input ends after an operator, possibly followed by
unary '!' tokens, the outer loop instead falls through with unresolved
operator state.

For example, "common_pid == 1 || common_pid == 2 &&" leaves
prog[0].target equal to -1. The second pass then reads prog[-1] before
the forward-jump check can reject it. Depending on adjacent slab
contents, it can also copy an out-of-bounds word into a branch target
that passes the forward-only check. A self-targeted perf tracepoint
counting event can reach this path through PERF_EVENT_IOC_SET_FILTER.

Reject the outer-loop fallthrough when a predicate has already been
parsed. This ensures that non-empty expressions only reach finalization
after the inner loop has resolved their operators. Keep the existing
no-filter error for input that has no predicates. Add a regression test
for trailing logical operators and unary negations.
Published: 2026-11-02
Score: 7.8 High
EPSS: n/a
KEV: No
Impact: Denial of Service via memory corruption
Action: Upgrade Kernel
AI Analysis

Impact

The Linux kernel tracing subsystem allowed an attacker to craft a filter expression that ends with an unfinished logical operator such as "||" or "&&". The parsing routine did not correctly reject these incomplete expressions, resulting in the parser accessing data outside the bounds of the filter program array. This out‑of‑bounds access could leak memory contents or trigger a kernel panic, effectively destabilizing the system. The weakness is rooted in insufficient input validation during expression parsing.

Affected Systems

All Linux kernel builds that implement the perf event filtering code before the fix are affected. Any system that uses perf tracepoints or configures event filters via PERF_EVENT_IOC_SET_FILTER is potentially vulnerable, regardless of distribution or kernel version. The issue is present in the core tracing code paths and applies to all users of the Linux kernel’s perf tracing facilities.

Risk and Exploitability

With a CVSS score of 7.8 the vulnerability is considered high severity. The EPSS score is not available, but the lack of a listed KEV disclosure suggests it has not yet been widely exploited in the wild. The likely attack vector is local or requires elevated privileges that allow configuring perf events (e.g., root or CAP_PERFMON). An attacker who can supply a malicious filter expression can trigger an out‑of‑bounds read and potentially crash the kernel, leading to denial of service or information leakage. The warning that content in adjacent slab objects may be exposed highlights the potential for data leakage if the out‑of‑bounds read is consumed by the attacker.

Generated by OpenCVE AI on November 2, 2026 at 18:06 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Deploy a kernel version that includes the fix for the incomplete filter parsing bug
  • Configure systems to restrict or disable PERF_EVENT_IOC_SET_FILTER for untrusted users, limiting filter creation to trusted processes or administrators
  • Monitor kernel logs for crashes or warnings related to perf event filtering and review any recent changes to perf tracepoint configurations

Generated by OpenCVE AI on November 2, 2026 at 18:06 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 02 Nov 2026 19:30:00 +0000

Type Values Removed Values Added
First Time appeared Linux linux
Vendors & Products Linux linux

Mon, 02 Nov 2026 18:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-129

Mon, 02 Nov 2026 16:15:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: tracing: Reject incomplete event filter expressions A non-empty expression normally finishes in predicate_parse()'s inner loop, which resolves the pending logical operators before jumping to finalization. If the input ends after an operator, possibly followed by unary '!' tokens, the outer loop instead falls through with unresolved operator state. For example, "common_pid == 1 || common_pid == 2 &&" leaves prog[0].target equal to -1. The second pass then reads prog[-1] before the forward-jump check can reject it. Depending on adjacent slab contents, it can also copy an out-of-bounds word into a branch target that passes the forward-only check. A self-targeted perf tracepoint counting event can reach this path through PERF_EVENT_IOC_SET_FILTER. Reject the outer-loop fallthrough when a predicate has already been parsed. This ensures that non-empty expressions only reach finalization after the inner loop has resolved their operators. Keep the existing no-filter error for input that has no predicates. Add a regression test for trailing logical operators and unary negations.
Title tracing: Reject incomplete event filter expressions
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References
Metrics cvssV3_1

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


Subscriptions

Linux Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-11-02T16:06:41.950Z

Reserved: 2026-09-25T10:25:14.402Z

Link: CVE-2026-99236

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-11-02T16:17:49.003

Modified: 2026-11-02T16:17:49.003

Link: CVE-2026-99236

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-11-02T19:15:16Z

Weaknesses
  • CWE-129

    Improper Validation of Array Index