CVE-2026-93275: perf/x86/intel/pt: Fix stop/start with no update

Published Sep 24, 2026
·
Updated

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

perf/x86/intel/pt: Fix stop/start with no update

If pteventstop() is called without PERFEFUPDATE flag, then perfauxoutputend() is not called. A subsequent call to pteventstart() will call perfauxoutputbegin() again which violates the rule against nesting and triggers a WARNING in perfauxoutputbegin().

Originally, pteventstop() was never called without PERFEFUPDATE, because the only code paths to do so are from event overflow, and Intel PT does not do that.

However the introduction of group throttling by commit 9734e25fbf5ae ("perf: Fix the throttle logic for a group") meant that an Intel PT event could be throttled if it was part of a group. Throttling calls PMU ->stop() / ->start() callbacks without flags.

An example is when AUX area sampling is used. The following commands hit the issue:

echo 10000 > /proc/sys/kernel/perfeventmaxsamplerate

perf record -F32000 --aux-sample -e '{intelpt//u,cycles:u}' \ -- bash -c 'for i in seq 1 100000 ; do true ; done'

Use PERFHESUPTODATE to track whether perfauxoutputbegin() and perfauxoutputend() are balanced. A cleared PERFHESUPTODATE bit indicates that an AUX output context is still open.

Amend pteventstart() / pteventstop() accordingly so that begin/end stay balanced:

- In non-snapshot mode, stop() always closes the buffer (the buffer may have run out of space, and that accounting is done by the update), so a following start() opens a fresh one as before.

- In snapshot/overwrite mode, stop() without PERFEFUPDATE leaves the buffer open so that pteventsnapshotaux() can still copy from it, and start() then only re-enables tracing instead of calling perfauxoutputbegin() again.

Note that pteventdel() calls pteventstop() with PERFEFUPDATE flag set (as is required by the documentation), so a final call to perfauxoutputend() is assured.

Affected Software

1 affected component
Linux Linux kernel

Event History

Sep 24, 2026
CVE Published
via MITRE·03:52 PM
Data Sourced
via MITRE·03:52 PM
Description
Data Sourced
via NVD·04:17 PM
Description

Frequently Asked Questions

1

What conditions are required to trigger this issue?

An Intel PT perf event must be part of a group and be throttled, causing the PMU stop/start callbacks to run without flags. The described example uses AUX area sampling and a reduced perf_event_max_sample_rate setting.

2

How can I tell whether a system is encountering the problem?

The issue triggers a WARNING in perf_aux_output_begin() when pt_event_start() begins AUX output again after a stop that did not end it. The provided perf record command using --aux-sample with an intel_pt event can reproduce the condition.

3

What behavior does the fix change?

The fix uses PERF_HES_UPTODATE to track whether perf_aux_output_begin() and perf_aux_output_end() are balanced. This prevents a subsequent start from violating the AUX output nesting rule after an unflagged stop.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203