perf: Require kernel access for text poke events
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.6.160, 6.12.113, 6.18.56, 7.2.10
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
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 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.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From e17d43b93e544f5016c0251d2074c15568d5d963 · fixed in 8c38cb055f6a9651198780e4e4d5283de4039f79; From e17d43b93e544f5016c0251d2074c15568d5d963 · fixed in 8473f44db9f710ea6f8cafb22f2e3ba6cb8ca9a7; From e17d43b93e544f5016c0251d2074c15568d5d963 · fixed in e506333d1b9f42f1e402acebf1283af3c44a3809; From e17d43b93e544f5016c0251d2074c15568d5d963 · fixed in 677d0b51ac1a0db55d768c4c6399210b3de0795b; From e17d43b93e544f5016c0251d2074c15568d5d963 · fixed in 357e8a77a501d96c9517f01f4a211eed5e9c9184
- Linux Linux
5.9
- KernelLinux
From 5.9.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.113; From 6.13.0 · fixed in 6.18.56; From 6.19.0 · fixed in 7.2.10