CVE-2024-46745

5.5 MEDIUM

📋 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

Products:
  • Linux kernel
Versions: Versions before the fix commits (specific versions vary by distribution)
Operating Systems: Linux distributions using vulnerable kernel versions
Default Config Vulnerable: ⚠️ Yes
Notes: Requires uinput module loaded and users with CAP_SYS_ADMIN or appropriate permissions to create uinput devices. Many systems load uinput automatically for virtualization, containers, or input emulation.

📦 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.

🌐 Internet-Facing: LOW - uinput is typically not directly exposed to internet-facing interfaces unless specifically configured for remote input handling.
🏢 Internal Only: MEDIUM - Systems allowing local users or containers to create uinput devices could be vulnerable to DoS attacks from malicious or compromised accounts.

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

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

linux

Limit 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

linux

Some 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

📤 Share & Export