CVE-2026-98655: perf: Require kernel access for text poke events
In the Linux kernel, the following vulnerability has been resolved:
perf: Require kernel access for text poke events
Perf events with excludekernel=1 can be opened without kernel perf access. However, excludekernel does not suppress text-poke sideband records. Every PERFRECORDTEXTPOKE is marked PERFRECORDMISCKERNEL and contains a raw kernel instruction address.
An unprivileged task can therefore open and mmap a task-local software event with textpoke=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 perfallowkernel() whenever attr.textpoke is set, regardless of excludekernel. Events that neither monitor kernel execution nor request text-poke records retain their existing permissions.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Compensating control
In the Linux kernel perf event permission check, call perf_allow_kernel() whenever attr.text_poke is set, regardless of exclude_kernel, so text-poke events require kernel perf access.