---
id: CVE-2026-98655
title: 'perf: Require kernel access for text poke events'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  perf: Require kernel access for text poke events

  Perf events with exclude_kernel=1 can be opened without kernel perf
  access. However, exclude_kernel does not suppress …
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= e17d43b93e544f5016c0251d2074c15568d5d963 <
    8473f44db9f710ea6f8cafb22f2e3ba6cb8ca9a7
  - >-
    Linux >= e17d43b93e544f5016c0251d2074c15568d5d963 <
    e506333d1b9f42f1e402acebf1283af3c44a3809
  - >-
    Linux >= e17d43b93e544f5016c0251d2074c15568d5d963 <
    677d0b51ac1a0db55d768c4c6399210b3de0795b
  - >-
    Linux >= e17d43b93e544f5016c0251d2074c15568d5d963 <
    357e8a77a501d96c9517f01f4a211eed5e9c9184
  - Linux 5.9
published: '2026-10-18'
updated: '2026-10-18'
sourceUpdated: '2026-10-18T15:44:05.722Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-98655'
references:
  - url: 'https://git.kernel.org/stable/c/8473f44db9f710ea6f8cafb22f2e3ba6cb8ca9a7'
  - url: 'https://git.kernel.org/stable/c/e506333d1b9f42f1e402acebf1283af3c44a3809'
  - url: 'https://git.kernel.org/stable/c/677d0b51ac1a0db55d768c4c6399210b3de0795b'
  - url: 'https://git.kernel.org/stable/c/357e8a77a501d96c9517f01f4a211eed5e9c9184'
tags:
  - cve.org
ingestedAt: '2026-10-18T16:47:32.537Z'
---

## Overview

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

perf: Require kernel access for text poke events

Perf events with exclude_kernel=1 can be opened without kernel perf
access. However, exclude_kernel does not suppress text-poke sideband
records. Every PERF_RECORD_TEXT_POKE is marked PERF_RECORD_MISC_KERNEL
and contains a raw kernel instruction address.

An unprivileged task can therefore open and mmap a task-local software
event with text_poke=1. Both opening a count-only tracepoint event and
configuring UDP GRO for ESP-in-UDP cause updates to inline static calls;
the observer receives the relocated addresses of the modified instructions.
For a known kernel image, any such address reveals the runtime kernel
text base despite KASLR.

Call perf_allow_kernel() whenever attr.text_poke is set, regardless of
exclude_kernel. Events that neither monitor kernel execution nor request
text-poke records retain their existing permissions.

## Affected

- `Linux >= e17d43b93e544f5016c0251d2074c15568d5d963 < 8473f44db9f710ea6f8cafb22f2e3ba6cb8ca9a7`
- `Linux >= e17d43b93e544f5016c0251d2074c15568d5d963 < e506333d1b9f42f1e402acebf1283af3c44a3809`
- `Linux >= e17d43b93e544f5016c0251d2074c15568d5d963 < 677d0b51ac1a0db55d768c4c6399210b3de0795b`
- `Linux >= e17d43b93e544f5016c0251d2074c15568d5d963 < 357e8a77a501d96c9517f01f4a211eed5e9c9184`
- `Linux 5.9`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
