CVE-2023-53649
📋 TL;DR
This is a memory leak vulnerability in the Linux kernel's perf trace subsystem where evsel->priv memory allocations are not properly freed. It affects systems running vulnerable Linux kernel versions with perf tools enabled, potentially leading to resource exhaustion over time.
💻 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 →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
Sustained exploitation could lead to kernel memory exhaustion, causing system instability, performance degradation, or denial of service through resource depletion.
Likely Case
Gradual memory consumption during perf trace operations, potentially impacting system performance over extended usage periods.
If Mitigated
Minimal impact with proper monitoring and resource limits in place; primarily affects debugging/tracing operations.
🎯 Exploit Status
Requires local access and ability to run perf trace commands; memory leak occurs during normal trace operations.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Kernel versions with commits 27f396f64537b1ae48d0644d7cbf0d250b3c0b33, 62dd514c34be63d3d5cae1f52a7e8b96c6dd6630, 7962ef13651a9163f07b530607392ea123482e8a, or c3bc668581e71e7c3bc7eb1d647f25f8db222163
Vendor Advisory: https://git.kernel.org/stable/c/27f396f64537b1ae48d0644d7cbf0d250b3c0b33
Restart Required: Yes
Instructions:
1. Update Linux kernel to patched version. 2. Reboot system to load new kernel. 3. Verify kernel version with 'uname -r'. 4. Test perf trace functionality.
🔧 Temporary Workarounds
Restrict perf permissions
allLimit access to perf tools to prevent unauthorized users from triggering the memory leak
chmod 750 /usr/bin/perf
setfacl -m u:root:rwx /usr/bin/perf
setfacl -m g:trusted_users:rx /usr/bin/perf
Disable perf trace functionality
allPrevent use of vulnerable trace functionality if not required
echo 0 > /proc/sys/kernel/perf_event_paranoid
chmod 000 /usr/bin/perf
🧯 If You Can't Patch
- Implement strict access controls on perf binary
- Monitor system memory usage and restart services if abnormal consumption detected
🔍 How to Verify
Check if Vulnerable:
Run 'perf trace sleep 1' with ASAN enabled and check for memory leaks; or check kernel version against known vulnerable ranges
Check Version:
uname -r
Verify Fix Applied:
Test perf trace operations and monitor for memory leaks; verify kernel contains fix commits
📡 Detection & Monitoring
Log Indicators:
- Unusual memory consumption patterns
- Perf trace process memory growth over time
- Kernel OOM events
Network Indicators:
- None - local vulnerability only
SIEM Query:
process.name="perf" AND memory.usage > threshold