CVE-2014-3181
NoneCVSS
—
EPSS
0.8%
Published
Sep 28, 2014
CISA due date
—
Cloudanix analysis
A flaw in how certain Linux systems handle data from a specific type of mouse can let someone who plugs in a bad device crash the computer or take control of it.
- Exploitation
- Physical Access
- Attacker needs
- Physical Access
- Complexity
- Moderate
- Impact
- Remote Code Execution
- Component
- OS kernel
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Medium
What it actually does
Multiple stack-based buffer overflows in the magicmouse_raw_event function allow memory corruption from excessive EHCI or XHCI data supplied by a crafted HID device, resulting in denial of service or arbitrary code execution.
Why it matters to the business
Affected Linux systems risk sudden crashes or full compromise when a malicious USB device is connected, potentially causing downtime or unauthorized access with physical proximity.
How an attack unfolds
An attacker with physical access attaches a crafted Magic Mouse-emulating device that floods the driver with oversized event data via EHCI or XHCI, triggering the buffer overflow to crash the system or run attacker code.
How to fix it
Upgrade the Linux kernel to a version containing the fix for hid-magicmouse.c. For the listed Ubuntu packages apply the following fixed versions: webkitgtk (Ubuntu:14.04:LTS) 2.4.8-1ubuntu1~ubuntu14.04.1 and webkitgtk (Ubuntu:16.04:LTS) 2.4.9-2ubuntu2.
How to confirm the fix worked
Verify the installed kernel or package version matches or exceeds the listed fixed versions and confirm the magicmouse_raw_event function no longer accepts unbounded data.
Typical attack path
- Obtain or fabricate a USB device that emulates a Magic Mouse
- Connect the device to a vulnerable Linux system
- Send large volumes of EHCI or XHCI event data
- Trigger the overflow in magicmouse_raw_event to achieve crash or code execution
How to detect it
Review system logs for unexpected crashes in the HID subsystem around the time of USB device connections; examine dmesg or kernel logs for stack overflow or magicmouse-related faults.
What your security team should do
- Apply the kernel or package updates immediately on all affected systems
- Disable the magicmouse HID driver if the hardware is not required
- Restrict physical USB access where feasible
The record
Multiple stack-based buffer overflows in the magicmouse_raw_event function in drivers/hid/hid-magicmouse.c in the Magic Mouse HID driver in the Linux kernel through 3.16.3 allow physically proximate attackers to cause a denial of service (system crash) or possibly execute arbitrary code via a crafted device that provides a large amount of (1) EHCI or (2) XHCI data associated with an event.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | linux | 0 | 3.16.5-1 |
| Debian:12 | linux | 0 | 3.16.5-1 |
| Debian:13 | linux | 0 | 3.16.5-1 |
| Red Hat:enterprise_linux:7::client | kernel | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-abi-whitelists | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-bootwrapper | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-debug | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-debug-debuginfo | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-debug-devel | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-debuginfo | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-debuginfo-common-ppc64 | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-debuginfo-common-s390x | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-debuginfo-common-x86_64 | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-devel | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-doc | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-headers | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-kdump | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-kdump-debuginfo | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-kdump-devel | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-tools | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-tools-debuginfo | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-tools-libs | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-tools-libs-devel | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::client | perf | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::client | perf-debuginfo | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::client | python-perf | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::client | python-perf-debuginfo | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-abi-whitelists | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-bootwrapper | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-debug | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-debug-debuginfo | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-debug-devel | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-debuginfo | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-debuginfo-common-ppc64 | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-debuginfo-common-s390x | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-debuginfo-common-x86_64 | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-devel | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-doc | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-headers | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-kdump | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-kdump-debuginfo | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-kdump-devel | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-tools | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-tools-debuginfo | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-tools-libs | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-tools-libs-devel | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::computenode | perf | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::computenode | perf-debuginfo | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::computenode | python-perf | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::computenode | python-perf-debuginfo | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel-abi-whitelists | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel-bootwrapper | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel-debug | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel-debug-debuginfo | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel-debug-devel | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel-debuginfo | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel-debuginfo-common-ppc64 | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel-debuginfo-common-s390x | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel-debuginfo-common-x86_64 | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel-devel | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel-doc | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel-headers | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel-kdump | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel-kdump-debuginfo | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel-kdump-devel | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel-tools | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel-tools-debuginfo | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel-tools-libs | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel-tools-libs-devel | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::server | perf | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::server | perf-debuginfo | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::server | python-perf | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::server | python-perf-debuginfo | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-abi-whitelists | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-bootwrapper | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-debug | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-debug-debuginfo | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-debug-devel | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-debuginfo | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-debuginfo-common-ppc64 | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-debuginfo-common-s390x | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-debuginfo-common-x86_64 | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-devel | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-doc | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-headers | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-kdump | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-kdump-debuginfo | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-kdump-devel | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-tools | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-tools-debuginfo | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-tools-libs | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-tools-libs-devel | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::workstation | perf | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::workstation | perf-debuginfo | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::workstation | python-perf | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_linux:7::workstation | python-perf-debuginfo | 0 | 0:3.10.0-123.13.1.el7 |
| Red Hat:enterprise_mrg:2:server:el6 | kernel-rt | 0 | 0:3.10.33-rt32.51.el6rt |
| Red Hat:enterprise_mrg:2:server:el6 | kernel-rt-debug | 0 | 0:3.10.33-rt32.51.el6rt |
| Red Hat:enterprise_mrg:2:server:el6 | kernel-rt-debug-debuginfo | 0 | 0:3.10.33-rt32.51.el6rt |
| Red Hat:enterprise_mrg:2:server:el6 | kernel-rt-debug-devel | 0 | 0:3.10.33-rt32.51.el6rt |
| Red Hat:enterprise_mrg:2:server:el6 | kernel-rt-debuginfo | 0 | 0:3.10.33-rt32.51.el6rt |
| Red Hat:enterprise_mrg:2:server:el6 | kernel-rt-debuginfo-common-x86_64 | 0 | 0:3.10.33-rt32.51.el6rt |
| Red Hat:enterprise_mrg:2:server:el6 | kernel-rt-devel | 0 | 0:3.10.33-rt32.51.el6rt |
| Red Hat:enterprise_mrg:2:server:el6 | kernel-rt-doc | 0 | 0:3.10.33-rt32.51.el6rt |
| Red Hat:enterprise_mrg:2:server:el6 | kernel-rt-firmware | 0 | 0:3.10.33-rt32.51.el6rt |
| Red Hat:enterprise_mrg:2:server:el6 | kernel-rt-trace | 0 | 0:3.10.33-rt32.51.el6rt |
| Red Hat:enterprise_mrg:2:server:el6 | kernel-rt-trace-debuginfo | 0 | 0:3.10.33-rt32.51.el6rt |
| Red Hat:enterprise_mrg:2:server:el6 | kernel-rt-trace-devel | 0 | 0:3.10.33-rt32.51.el6rt |
| Red Hat:enterprise_mrg:2:server:el6 | kernel-rt-vanilla | 0 | 0:3.10.33-rt32.51.el6rt |
| Red Hat:enterprise_mrg:2:server:el6 | kernel-rt-vanilla-debuginfo | 0 | 0:3.10.33-rt32.51.el6rt |
| Red Hat:enterprise_mrg:2:server:el6 | kernel-rt-vanilla-devel | 0 | 0:3.10.33-rt32.51.el6rt |
| Ubuntu:14.04:LTS | linux | 0 | 3.13.0-37.64 |
| Ubuntu:14.04:LTS | linux-aws | 0 | 4.4.0-1002.2 |
| Ubuntu:14.04:LTS | linux-lts-utopic | 0 | 3.16.0-25.33~14.04.2 |
| Ubuntu:14.04:LTS | linux-lts-vivid | 0 | 3.19.0-18.18~14.04.1 |
| Ubuntu:14.04:LTS | linux-lts-wily | 0 | 4.2.0-18.22~14.04.1 |
| Ubuntu:14.04:LTS | linux-lts-xenial | 0 | 4.4.0-13.29~14.04.1 |
| Ubuntu:16.04:LTS | linux | 0 | 4.2.0-16.19 |
| Ubuntu:16.04:LTS | linux-aws | 0 | 4.4.0-1001.10 |
| Ubuntu:16.04:LTS | linux-gke | 0 | 4.4.0-1003.3 |
| Ubuntu:16.04:LTS | linux-hwe | 0 | 4.8.0-36.36~16.04.1 |
| Ubuntu:16.04:LTS | linux-raspi2 | 0 | 4.2.0-1013.19 |
| Ubuntu:16.04:LTS | linux-snapdragon | 0 | 4.4.0-1012.12 |
| Ubuntu:Pro:16.04:LTS | linux-flo | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | linux-goldfish | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | linux-mako | 0 | No fix |
Related vulnerabilities
- CVE-2025-38562 In the Linux kernel, the following vulnerability has been resolved: ksmbd: fix null… Also affects linux
- CVE-2025-38352 In the Linux kernel, the following vulnerability has been resolved: posix-cpu-timers: fix… Also affects linux
- CVE-2025-22037 In the Linux kernel, the following vulnerability has been resolved: ksmbd: fix null… Also affects linux
- CVE-2025-21760 In the Linux kernel, the following vulnerability has been resolved: ndisc: extend RCU… Also affects linux
- CVE-2025-21758 In the Linux kernel, the following vulnerability has been resolved: ipv6: mcast: add RCU… Also affects linux
- CVE-2025-21664 In the Linux kernel, the following vulnerability has been resolved: dm thin: make… Also affects linux
- CVE-2024-57946 In the Linux kernel, the following vulnerability has been resolved: virtio-blk: don't… Also affects linux
- CVE-2024-57945 In the Linux kernel, the following vulnerability has been resolved: riscv: mm: Fix the… Also affects linux