CVE-2023-52835
📋 TL;DR
A memory allocation vulnerability in the Linux kernel's perf subsystem allows denial of service when attempting to allocate large AUX buffer areas. This affects Linux systems where perf events are used, particularly with ARM SPE (Statistical Profiling Extension) hardware. Attackers with local access can crash the kernel by triggering the WARNING condition.
💻 Affected Systems
- Linux Kernel
📦 What is this software?
Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →Linux Kernel by Linux
The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...
Learn more about Linux Kernel →⚠️ Risk & Real-World Impact
Worst Case
Local attacker causes kernel panic/DoS by triggering the WARNING with large AUX buffer requests, potentially disrupting system availability.
Likely Case
Accidental triggering by legitimate perf users with large buffer configurations leads to failed perf operations and kernel warnings in logs.
If Mitigated
Proper access controls prevent unauthorized users from running perf, limiting impact to privileged users only.
🎯 Exploit Status
Exploitation requires local user access and ability to run perf with large AUX buffer parameters. No privilege escalation or code execution demonstrated.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Patched in stable kernel commits: 1a2a4202c60fcdffbf04f259002ce9bff39edece, 2424410f94a94d91230ced094062d859714c984a, 2e905e608e38cf7f8dcddcf8a6036e91a78444cb, 54aee5f15b83437f23b2b2469bcf21bdd9823916, 788c0b3442ead737008934947730a6d1ff703734
Vendor Advisory: https://git.kernel.org/stable/c/
Restart Required: Yes
Instructions:
1. Update Linux kernel to version containing fix commits. 2. Check distribution security advisories for backported patches. 3. Reboot system after kernel update.
🔧 Temporary Workarounds
Restrict perf access
linuxLimit perf subsystem usage to trusted users via kernel.perf_event_paranoid sysctl or capabilities.
sysctl -w kernel.perf_event_paranoid=3
echo 'kernel.perf_event_paranoid=3' >> /etc/sysctl.conf
sysctl -p
Disable perf for untrusted users
linuxUse Linux security modules or capabilities to prevent unauthorized perf usage.
setcap -r /usr/bin/perf
chmod 750 /usr/bin/perf
🧯 If You Can't Patch
- Restrict perf command access to root/admin users only via filesystem permissions.
- Monitor system logs for perf-related WARNING messages and investigate unauthorized usage.
🔍 How to Verify
Check if Vulnerable:
Attempt perf record with large AUX buffer: 'perf record -C 0 -m ,4G -e arm_spe_0// -- sleep 1' (if supported). Check kernel logs for WARNING about __alloc_pages.
Check Version:
uname -r
Verify Fix Applied:
After patching, same command should fail gracefully with 'Cannot allocate memory' error without kernel WARNING.
📡 Detection & Monitoring
Log Indicators:
- Kernel WARNING messages containing '__alloc_pages' and call trace with 'rb_alloc_aux'
- Failed perf commands with 'Cannot allocate memory' errors
Network Indicators:
- None - local exploitation only
SIEM Query:
source="kernel" AND "WARNING" AND "__alloc_pages" AND "rb_alloc_aux"
🔗 References
- https://git.kernel.org/stable/c/1a2a4202c60fcdffbf04f259002ce9bff39edece
- https://git.kernel.org/stable/c/2424410f94a94d91230ced094062d859714c984a
- https://git.kernel.org/stable/c/2e905e608e38cf7f8dcddcf8a6036e91a78444cb
- https://git.kernel.org/stable/c/54aee5f15b83437f23b2b2469bcf21bdd9823916
- https://git.kernel.org/stable/c/788c0b3442ead737008934947730a6d1ff703734
- https://git.kernel.org/stable/c/8c504f615d7ed60ae035c51d0c789137ced6797f
- https://git.kernel.org/stable/c/9ce4e87a8efd37c85766ec08b15e885cab08553a
- https://git.kernel.org/stable/c/fd0df3f8719201dbe61a4d39083d5aecd705399a
- https://git.kernel.org/stable/c/1a2a4202c60fcdffbf04f259002ce9bff39edece
- https://git.kernel.org/stable/c/2424410f94a94d91230ced094062d859714c984a
- https://git.kernel.org/stable/c/2e905e608e38cf7f8dcddcf8a6036e91a78444cb
- https://git.kernel.org/stable/c/54aee5f15b83437f23b2b2469bcf21bdd9823916
- https://git.kernel.org/stable/c/788c0b3442ead737008934947730a6d1ff703734
- https://git.kernel.org/stable/c/8c504f615d7ed60ae035c51d0c789137ced6797f
- https://git.kernel.org/stable/c/9ce4e87a8efd37c85766ec08b15e885cab08553a
- https://git.kernel.org/stable/c/fd0df3f8719201dbe61a4d39083d5aecd705399a