CVE-2024-46745
📋 TL;DR
The Linux kernel's uinput subsystem fails to properly validate the number of multitouch slots requested during device creation, allowing attackers to trigger memory allocation failures that could lead to denial-of-service conditions. This affects systems using uinput for virtual input device creation, particularly those exposed to untrusted users or automated testing tools. The vulnerability is mitigated by limiting slots to 100 in patched versions.
💻 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 →⚠️ Risk & Real-World Impact
Worst Case
Denial-of-service through kernel memory exhaustion, potentially crashing the system or causing instability when processing malicious uinput requests with excessive slot counts.
Likely Case
System instability or crashes in environments where uinput is exposed to untrusted users or automated fuzzing tools like syzkaller, leading to service disruption.
If Mitigated
Minimal impact as the request is rejected after failed memory allocation, but still generates error reports and wastes system resources temporarily.
🎯 Exploit Status
Syzkaller fuzzer discovered this vulnerability, and proof-of-concept code exists in syzkaller test cases. Exploitation requires local access with uinput creation privileges.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Kernel versions containing commits 206f533a0a7c683982af473079c4111f4a0f9f5e or related fixes
Vendor Advisory: https://git.kernel.org/stable/c/206f533a0a7c683982af473079c4111f4a0f9f5e
Restart Required: Yes
Instructions:
1. Update Linux kernel to patched version from your distribution. 2. For custom kernels: apply the uinput slot limit patch from kernel git. 3. Reboot system to load new kernel.
🔧 Temporary Workarounds
Restrict uinput access
linuxLimit which users can create uinput devices by removing CAP_SYS_ADMIN or using device cgroups
# Remove uinput module: rmmod uinput
# Blacklist module: echo 'blacklist uinput' > /etc/modprobe.d/blacklist-uinput.conf
Use kernel module parameters
linuxSome distributions allow limiting uinput through module parameters if available
# Check if your kernel supports uinput parameters: modinfo uinput
🧯 If You Can't Patch
- Restrict uinput device creation to trusted users only using Linux capabilities and access controls
- Monitor system logs for uinput allocation failures and investigate any suspicious device creation attempts
🔍 How to Verify
Check if Vulnerable:
Check kernel version and if uinput module is loaded: lsmod | grep uinput && uname -r
Check Version:
uname -r
Verify Fix Applied:
Verify kernel version is patched: grep -q 'uinput.*slots' /proc/kallsyms 2>/dev/null && echo 'May be vulnerable' || echo 'Likely patched'
📡 Detection & Monitoring
Log Indicators:
- Kernel logs showing 'input_mt_init_slots: allocation failed' or similar memory allocation errors
- System logs showing uinput device creation with high slot counts
Network Indicators:
- Not applicable - local vulnerability
SIEM Query:
source="kernel" AND ("input_mt_init_slots" OR "uinput" AND "allocation")
🔗 References
- https://git.kernel.org/stable/c/206f533a0a7c683982af473079c4111f4a0f9f5e
- https://git.kernel.org/stable/c/51fa08edd80003db700bdaa099385c5900d27f4b
- https://git.kernel.org/stable/c/597ff930296c4c8fc6b6a536884d4f1a7187ec70
- https://git.kernel.org/stable/c/61df76619e270a46fd427fbdeb670ad491c42de2
- https://git.kernel.org/stable/c/9719687398dea8a6a12a10321a54dd75eec7ab2d
- https://git.kernel.org/stable/c/9c6d189f0c1c59ba9a32326ec82a0b367a3cd47b
- https://git.kernel.org/stable/c/a4858b00a1ec57043697fb935565fe267f161833
- https://git.kernel.org/stable/c/d76fc0f0b18d49b7e721c9e4975ef4bffde2f3e7
- https://lists.debian.org/debian-lts-announce/2024/10/msg00003.html
- https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html