CVE-2016-7425
High · 7.8CVSS
7.8
EPSS
0.4%
Published
Oct 16, 2016
CISA due date
—
Cloudanix analysis
A problem in how the Linux kernel talks to certain storage cards lets someone already logged into the computer take full control or shut the machine down.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Privilege Gain
- Component
- OS kernel
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Medium
What it actually does
The arcmsr_iop_message_xfer function in the Linux kernel arcmsr driver fails to validate the length field for ARCMSR_MESSAGE_WRITE_WQBUFFER ioctls, enabling a local process to write beyond the allocated heap buffer and corrupt adjacent kernel memory.
Why it matters to the business
On systems using affected Areca RAID controllers, a logged-in user can crash the kernel or obtain full root privileges, resulting in loss of system availability, data integrity, and confidentiality until the kernel is updated.
How an attack unfolds
An attacker with local shell access identifies a vulnerable kernel, opens the arcmsr device, and issues a crafted ARCMSR_MESSAGE_WRITE_WQBUFFER ioctl containing an oversized payload that overflows the heap buffer, allowing control of kernel execution flow to execute arbitrary code or trigger a denial of service.
How to fix it
Upgrade the Linux kernel to a version containing commit 7bc2b55a5c030685b399bb65b6baa9ccc3d1f167 or later; rebuild and reboot with the patched kernel. Where immediate patching is impossible, restrict untrusted local accounts and disable the arcmsr driver if the hardware is not required.
How to confirm the fix worked
Verify the running kernel source contains commit 7bc2b55a5c030685b399bb65b6baa9ccc3d1f167, confirm the arcmsr_hba.c file no longer lacks length validation for the WRITE_WQBUFFER path, and test that oversized ioctls are rejected without memory corruption.
Typical attack path
- Obtain a local user account on the target Linux system
- Locate the arcmsr character device and confirm driver presence
- Craft an ioctl request with ARCMSR_MESSAGE_WRITE_WQBUFFER and an unchecked length value
- Send the malicious ioctl to trigger the heap overflow
- Leverage memory corruption to escalate privileges or crash the kernel
How to detect it
Review kernel audit logs and dmesg for arcmsr-related oops or slab corruption messages around the time of suspected activity; inspect process execution history for unusual ioctl calls to the arcmsr device node.
What your security team should do
- Prioritize kernel upgrade on all systems exposing the arcmsr driver to untrusted local users
- Audit local user accounts and remove unnecessary privileges until patching is complete
- Monitor vendor advisories for backported fixes in distribution kernels
- Consider disabling the driver module if the hardware is unused
The record
The arcmsr_iop_message_xfer function in drivers/scsi/arcmsr/arcmsr_hba.c in the Linux kernel through 4.8.2 does not restrict a certain length field, which allows local users to gain privileges or cause a denial of service (heap-based buffer overflow) via an ARCMSR_MESSAGE_WRITE_WQBUFFER control code.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | linux | 0 | 4.7.8-1 |
| Debian:12 | linux | 0 | 4.7.8-1 |
| Debian:13 | linux | 0 | 4.7.8-1 |
| Debian:7 | linux | 0 | 3.2.82-1 |
| Debian:8 | linux | 0 | 3.16.36-1+deb8u2 |
| Mageia:5 | kernel-linus | 0 | 4.4.32-1.mga5 |
| Mageia:5 | kernel-tmb | 0 | 4.4.32-1.mga5 |
| SUSE:Linux Enterprise Desktop 12 SP1 | kernel-default | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | kernel-source | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | kernel-syms | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | kernel-xen | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Desktop 12 SP2 | kernel-default | 0 | 4.4.38-93.1 |
| SUSE:Linux Enterprise Desktop 12 SP2 | kernel-source | 0 | 4.4.38-93.1 |
| SUSE:Linux Enterprise Desktop 12 SP2 | kernel-syms | 0 | 4.4.38-93.1 |
| SUSE:Linux Enterprise High Availability Extension 12 SP2 | kernel-default | 0 | 4.4.38-93.1 |
| SUSE:Linux Enterprise Live Patching 12 | kgraft-patch-SLE12-SP1_Update_9 | 0 | 1-6.3 |
| SUSE:Linux Enterprise Live Patching 12 | kgraft-patch-SLE12-SP2_Update_4 | 0 | 1-2.1 |
| SUSE:Linux Enterprise Module for Public Cloud 12 | kernel-ec2 | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Module for Public Cloud 12 | kernel-ec2 | 0 | 3.12.61-52.66.1 |
| SUSE:Linux Enterprise Point of Sale 11 SP3 | kernel-default | 0 | 3.0.101-0.47.96.1 |
| SUSE:Linux Enterprise Point of Sale 11 SP3 | kernel-ec2 | 0 | 3.0.101-0.47.96.1 |
| SUSE:Linux Enterprise Point of Sale 11 SP3 | kernel-pae | 0 | 3.0.101-0.47.96.1 |
| SUSE:Linux Enterprise Point of Sale 11 SP3 | kernel-source | 0 | 3.0.101-0.47.96.1 |
| SUSE:Linux Enterprise Point of Sale 11 SP3 | kernel-syms | 0 | 3.0.101-0.47.96.1 |
| SUSE:Linux Enterprise Point of Sale 11 SP3 | kernel-trace | 0 | 3.0.101-0.47.96.1 |
| SUSE:Linux Enterprise Point of Sale 11 SP3 | kernel-xen | 0 | 3.0.101-0.47.96.1 |
| SUSE:Linux Enterprise Real Time 11 SP4 | kernel-rt | 0 | 3.0.101.rt130-65.1 |
| SUSE:Linux Enterprise Real Time 11 SP4 | kernel-rt_trace | 0 | 3.0.101.rt130-65.1 |
| SUSE:Linux Enterprise Real Time 11 SP4 | kernel-source-rt | 0 | 3.0.101.rt130-65.1 |
| SUSE:Linux Enterprise Real Time 11 SP4 | kernel-syms-rt | 0 | 3.0.101.rt130-65.1 |
| SUSE:Linux Enterprise Real Time 12 SP1 | kernel-compute | 0 | 3.12.67-60.27.1 |
| SUSE:Linux Enterprise Real Time 12 SP1 | kernel-compute_debug | 0 | 3.12.67-60.27.1 |
| SUSE:Linux Enterprise Real Time 12 SP1 | kernel-rt | 0 | 3.12.67-60.27.1 |
| SUSE:Linux Enterprise Real Time 12 SP1 | kernel-rt_debug | 0 | 3.12.67-60.27.1 |
| SUSE:Linux Enterprise Real Time 12 SP1 | kernel-source-rt | 0 | 3.12.67-60.27.1 |
| SUSE:Linux Enterprise Real Time 12 SP1 | kernel-syms-rt | 0 | 3.12.67-60.27.1 |
| SUSE:Linux Enterprise Server 11 SP2-LTSS | kernel-default | 0 | 3.0.101-0.7.53.1 |
| SUSE:Linux Enterprise Server 11 SP2-LTSS | kernel-ec2 | 0 | 3.0.101-0.7.53.1 |
| SUSE:Linux Enterprise Server 11 SP2-LTSS | kernel-pae | 0 | 3.0.101-0.7.53.1 |
| SUSE:Linux Enterprise Server 11 SP2-LTSS | kernel-source | 0 | 3.0.101-0.7.53.1 |
| SUSE:Linux Enterprise Server 11 SP2-LTSS | kernel-syms | 0 | 3.0.101-0.7.53.1 |
| SUSE:Linux Enterprise Server 11 SP2-LTSS | kernel-trace | 0 | 3.0.101-0.7.53.1 |
| SUSE:Linux Enterprise Server 11 SP2-LTSS | kernel-xen | 0 | 3.0.101-0.7.53.1 |
| SUSE:Linux Enterprise Server 11 SP3-LTSS | kernel-bigsmp | 0 | 3.0.101-0.47.96.1 |
| SUSE:Linux Enterprise Server 11 SP3-LTSS | kernel-default | 0 | 3.0.101-0.47.96.1 |
| SUSE:Linux Enterprise Server 11 SP3-LTSS | kernel-ec2 | 0 | 3.0.101-0.47.96.1 |
| SUSE:Linux Enterprise Server 11 SP3-LTSS | kernel-pae | 0 | 3.0.101-0.47.96.1 |
| SUSE:Linux Enterprise Server 11 SP3-LTSS | kernel-source | 0 | 3.0.101-0.47.96.1 |
| SUSE:Linux Enterprise Server 11 SP3-LTSS | kernel-syms | 0 | 3.0.101-0.47.96.1 |
| SUSE:Linux Enterprise Server 11 SP3-LTSS | kernel-trace | 0 | 3.0.101-0.47.96.1 |
| SUSE:Linux Enterprise Server 11 SP3-LTSS | kernel-xen | 0 | 3.0.101-0.47.96.1 |
| SUSE:Linux Enterprise Server 11 SP4 | kernel-bigmem | 0 | 3.0.101-88.1 |
| SUSE:Linux Enterprise Server 11 SP4 | kernel-default | 0 | 3.0.101-88.1 |
| SUSE:Linux Enterprise Server 11 SP4 | kernel-ec2 | 0 | 3.0.101-88.1 |
| SUSE:Linux Enterprise Server 11 SP4 | kernel-pae | 0 | 3.0.101-88.1 |
| SUSE:Linux Enterprise Server 11 SP4 | kernel-ppc64 | 0 | 3.0.101-88.1 |
| SUSE:Linux Enterprise Server 11 SP4 | kernel-source | 0 | 3.0.101-88.1 |
| SUSE:Linux Enterprise Server 11 SP4 | kernel-syms | 0 | 3.0.101-88.1 |
| SUSE:Linux Enterprise Server 11 SP4 | kernel-trace | 0 | 3.0.101-88.1 |
| SUSE:Linux Enterprise Server 11 SP4 | kernel-xen | 0 | 3.0.101-88.1 |
| SUSE:Linux Enterprise Server 12 SP1 | kernel-default | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Server 12 SP1 | kernel-source | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Server 12 SP1 | kernel-syms | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Server 12 SP1 | kernel-xen | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Server 12 SP2 | kernel-default | 0 | 4.4.38-93.1 |
| SUSE:Linux Enterprise Server 12 SP2 | kernel-source | 0 | 4.4.38-93.1 |
| SUSE:Linux Enterprise Server 12 SP2 | kernel-syms | 0 | 4.4.38-93.1 |
| SUSE:Linux Enterprise Server 12-LTSS | kernel-default | 0 | 3.12.61-52.66.1 |
| SUSE:Linux Enterprise Server 12-LTSS | kernel-source | 0 | 3.12.61-52.66.1 |
| SUSE:Linux Enterprise Server 12-LTSS | kernel-syms | 0 | 3.12.61-52.66.1 |
| SUSE:Linux Enterprise Server 12-LTSS | kernel-xen | 0 | 3.12.61-52.66.1 |
| SUSE:Linux Enterprise Server 12-LTSS | kgraft-patch-SLE12_Update_19 | 0 | 1-2.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | kernel-default | 0 | 4.4.38-93.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | kernel-source | 0 | 4.4.38-93.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | kernel-syms | 0 | 4.4.38-93.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | kernel-bigmem | 0 | 3.0.101-88.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | kernel-default | 0 | 3.0.101-88.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | kernel-ec2 | 0 | 3.0.101-88.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | kernel-pae | 0 | 3.0.101-88.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | kernel-ppc64 | 0 | 3.0.101-88.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | kernel-source | 0 | 3.0.101-88.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | kernel-syms | 0 | 3.0.101-88.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | kernel-trace | 0 | 3.0.101-88.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | kernel-xen | 0 | 3.0.101-88.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | kernel-default | 0 | 3.12.61-52.66.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | kernel-source | 0 | 3.12.61-52.66.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | kernel-syms | 0 | 3.12.61-52.66.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | kernel-xen | 0 | 3.12.61-52.66.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | kgraft-patch-SLE12_Update_19 | 0 | 1-2.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | kernel-default | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | kernel-source | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | kernel-syms | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | kernel-xen | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | kernel-default | 0 | 4.4.38-93.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | kernel-source | 0 | 4.4.38-93.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | kernel-syms | 0 | 4.4.38-93.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | kernel-docs | 0 | 3.0.101-88.3 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | kernel-docs | 0 | 3.12.67-60.64.18.3 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | kernel-obs-build | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP2 | kernel-docs | 0 | 4.4.38-93.3 |
| SUSE:Linux Enterprise Software Development Kit 12 SP2 | kernel-obs-build | 0 | 4.4.38-93.1 |
| SUSE:Linux Enterprise Workstation Extension 12 SP1 | kernel-default | 0 | 3.12.67-60.64.18.1 |
| SUSE:Linux Enterprise Workstation Extension 12 SP2 | kernel-default | 0 | 4.4.38-93.1 |
| SUSE:Manager 2.1 | kernel-bigsmp | 0 | 3.0.101-0.47.96.1 |
| SUSE:Manager 2.1 | kernel-default | 0 | 3.0.101-0.47.96.1 |
| SUSE:Manager 2.1 | kernel-ec2 | 0 | 3.0.101-0.47.96.1 |
| SUSE:Manager 2.1 | kernel-source | 0 | 3.0.101-0.47.96.1 |
| SUSE:Manager 2.1 | kernel-syms | 0 | 3.0.101-0.47.96.1 |
| SUSE:Manager 2.1 | kernel-trace | 0 | 3.0.101-0.47.96.1 |
| SUSE:Manager 2.1 | kernel-xen | 0 | 3.0.101-0.47.96.1 |
| SUSE:Manager Proxy 2.1 | kernel-bigsmp | 0 | 3.0.101-0.47.96.1 |
| SUSE:Manager Proxy 2.1 | kernel-default | 0 | 3.0.101-0.47.96.1 |
| SUSE:Manager Proxy 2.1 | kernel-ec2 | 0 | 3.0.101-0.47.96.1 |
| SUSE:Manager Proxy 2.1 | kernel-source | 0 | 3.0.101-0.47.96.1 |
| SUSE:Manager Proxy 2.1 | kernel-syms | 0 | 3.0.101-0.47.96.1 |
| SUSE:Manager Proxy 2.1 | kernel-trace | 0 | 3.0.101-0.47.96.1 |
| SUSE:Manager Proxy 2.1 | kernel-xen | 0 | 3.0.101-0.47.96.1 |
| SUSE:OpenStack Cloud 5 | kernel-bigsmp | 0 | 3.0.101-0.47.96.1 |
| SUSE:OpenStack Cloud 5 | kernel-default | 0 | 3.0.101-0.47.96.1 |
| SUSE:OpenStack Cloud 5 | kernel-ec2 | 0 | 3.0.101-0.47.96.1 |
| SUSE:OpenStack Cloud 5 | kernel-source | 0 | 3.0.101-0.47.96.1 |
| SUSE:OpenStack Cloud 5 | kernel-syms | 0 | 3.0.101-0.47.96.1 |
| SUSE:OpenStack Cloud 5 | kernel-trace | 0 | 3.0.101-0.47.96.1 |
| SUSE:OpenStack Cloud 5 | kernel-xen | 0 | 3.0.101-0.47.96.1 |
| Ubuntu:14.04:LTS | linux | 0 | 3.13.0-103.150 |
| Ubuntu:14.04:LTS | linux-aws | 0 | 4.4.0-1002.2 |
| Ubuntu:14.04:LTS | linux-lts-vivid | 0 | 3.19.0-75.83~14.04.1 |
| Ubuntu:14.04:LTS | linux-lts-xenial | 0 | 4.4.0-51.72~14.04.1 |
| Ubuntu:16.04:LTS | linux | 0 | 4.4.0-51.72 |
| 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.4.0-1038.45 |
| Ubuntu:16.04:LTS | linux-snapdragon | 0 | 4.4.0-1042.46 |
| Ubuntu:18.04:LTS | linux-azure | 0 | No fix |
| Ubuntu:18.04:LTS | linux-gcp | 0 | No fix |
| Ubuntu:18.04:LTS | linux-hwe | 0 | No fix |
| Ubuntu:18.04:LTS | linux-hwe-edge | 0 | No fix |
| Ubuntu:20.04:LTS | linux-azure-fde | 0 | No fix |
| Ubuntu:20.04:LTS | linux-gke | 0 | No fix |
| Ubuntu:20.04:LTS | linux-gkeop | 0 | No fix |
| Ubuntu:20.04:LTS | linux-raspi2 | 0 | No fix |
| Ubuntu:20.04:LTS | linux-riscv | 0 | No fix |
| Ubuntu:22.04:LTS | linux-intel-iot-realtime | 0 | No fix |
| Ubuntu:22.04:LTS | linux-realtime | 0 | No fix |
| Ubuntu:22.04:LTS | linux-riscv | 0 | No fix |
| Ubuntu:24.04:LTS | linux-azure-6.11 | 0 | No fix |
| Ubuntu:24.04:LTS | linux-gcp-6.11 | 0 | No fix |
| Ubuntu:24.04:LTS | linux-hwe-6.11 | 0 | No fix |
| Ubuntu:24.04:LTS | linux-lowlatency-hwe-6.11 | 0 | No fix |
| Ubuntu:24.04:LTS | linux-raspi-realtime | 0 | No fix |
| Ubuntu:24.04:LTS | linux-realtime | 0 | No fix |
| Ubuntu:24.04:LTS | linux-riscv | 0 | No fix |
| 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 |
| Ubuntu:Pro:18.04:LTS | linux-azure | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | linux-gcp | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | linux-hwe | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | linux-hwe-edge | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | linux-azure-fde | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | linux-azure-fde-5.15 | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | linux-gke | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | linux-gkeop | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | linux-raspi2 | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | linux-riscv | 0 | No fix |
| openSUSE:Tumbleweed | kernel-source | 0 | 4.8.13-1.1 |
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