CVE-2024-36015
📋 TL;DR
A missing error check in the Linux kernel's ppdev (parallel port device) driver could allow local attackers to cause a kernel crash or potentially execute arbitrary code. This vulnerability affects systems with the ppdev module loaded, typically those using parallel port devices. Attackers need local access to exploit this flaw.
💻 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 →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 privilege escalation to kernel-level code execution, potentially leading to full system compromise.
Likely Case
Kernel panic or system crash causing denial of service.
If Mitigated
Minimal impact if ppdev module is not loaded or access is restricted.
🎯 Exploit Status
Requires local access and knowledge of triggering the specific error condition in register_device.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Patched in stable kernel versions via provided git commits
Vendor Advisory: https://git.kernel.org/stable/c/5d5b24edad1107a2ffa99058f20f6aeeafeb5d39
Restart Required: Yes
Instructions:
1. Update to patched kernel version from your distribution. 2. Rebuild kernel if compiling from source with patches. 3. Reboot system to load new kernel.
🔧 Temporary Workarounds
Unload ppdev module
linuxRemove the vulnerable kernel module if not needed
sudo rmmod ppdev
echo 'blacklist ppdev' | sudo tee /etc/modprobe.d/blacklist-ppdev.conf
Restrict parallel port access
linuxLimit access to parallel port devices
sudo chmod 600 /dev/parport*
🧯 If You Can't Patch
- Ensure ppdev module is not loaded (check with lsmod)
- Restrict user access to parallel port devices and require root for ppdev operations
🔍 How to Verify
Check if Vulnerable:
Check if ppdev module is loaded: lsmod | grep ppdev. If loaded and kernel version is unpatched, system may be vulnerable.
Check Version:
uname -r
Verify Fix Applied:
Check kernel version against patched versions from git commits, and verify ppdev module behavior doesn't cause crashes.
📡 Detection & Monitoring
Log Indicators:
- Kernel panic messages
- Oops messages related to ppdev or ida_simple_get
- System crash logs
Network Indicators:
- None - local vulnerability
SIEM Query:
source="kernel" AND ("ppdev" OR "ida_simple_get" OR "Oops")
🔗 References
- https://git.kernel.org/stable/c/5d5b24edad1107a2ffa99058f20f6aeeafeb5d39
- https://git.kernel.org/stable/c/65cd017d43f4319a56747d38308b0a24cf57299e
- https://git.kernel.org/stable/c/b65d0410b879af0295d22438a4a32012786d152a
- https://git.kernel.org/stable/c/b8c6b83cc3adff3ddf403c8c7063fe6d08b2b9d9
- https://git.kernel.org/stable/c/d32caf51379a4d71db03d3d4d7c22d27cdf7f68b
- https://git.kernel.org/stable/c/df9329247dbbf00f6057e002139ab3fa529ad828
- https://git.kernel.org/stable/c/ec3468221efec6660ff656e9ebe51ced3520fc57
- https://git.kernel.org/stable/c/fbf740aeb86a4fe82ad158d26d711f2f3be79b3e
- https://git.kernel.org/stable/c/5d5b24edad1107a2ffa99058f20f6aeeafeb5d39
- https://git.kernel.org/stable/c/65cd017d43f4319a56747d38308b0a24cf57299e
- https://git.kernel.org/stable/c/b65d0410b879af0295d22438a4a32012786d152a
- https://git.kernel.org/stable/c/b8c6b83cc3adff3ddf403c8c7063fe6d08b2b9d9
- https://git.kernel.org/stable/c/d32caf51379a4d71db03d3d4d7c22d27cdf7f68b
- https://git.kernel.org/stable/c/df9329247dbbf00f6057e002139ab3fa529ad828
- https://git.kernel.org/stable/c/ec3468221efec6660ff656e9ebe51ced3520fc57
- https://git.kernel.org/stable/c/fbf740aeb86a4fe82ad158d26d711f2f3be79b3e
- https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html