CVE-2014-9904
High · 7.8CVSS
7.8
EPSS
0.4%
Published
Jun 27, 2016
CISA due date
—
Cloudanix analysis
An old flaw in the Linux sound system lets a logged-in user send bad instructions that can crash the computer or let them gain extra control.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Medium
What it actually does
The snd_compress_check_input function fails to validate parameters from a SNDRV_COMPRESS_SET_PARAMS ioctl, permitting an integer overflow that results in undersized memory allocation and subsequent memory corruption or denial of service.
Why it matters to the business
Local attackers on affected systems can crash audio-related processes or escalate privileges, leading to service disruption on servers or workstations that rely on ALSA compression offload; older unpatched distributions remain exposed despite the flaw's age.
How an attack unfolds
An attacker with local access crafts a malicious SNDRV_COMPRESS_SET_PARAMS ioctl containing oversized parameters that trigger the integer overflow in the ALSA compress offload path, causing the kernel to allocate insufficient memory and enabling follow-on corruption or crashes.
How to fix it
Upgrade the Linux kernel to version 3.17 or later; rebuild and reboot into the fixed kernel. Where immediate upgrade is impossible, restrict untrusted local accounts from accessing audio device nodes via permissions or seccomp filters.
How to confirm the fix worked
Run uname -r to confirm kernel version is 3.17 or newer; attempt to load the compress-offload module and exercise SNDRV_COMPRESS_SET_PARAMS with boundary values in a test environment to verify no overflow occurs.
Typical attack path
- Obtain a local shell or process on the target system
- Open /dev/snd/compress device node
- Invoke SNDRV_COMPRESS_SET_PARAMS ioctl with crafted struct snd_compr_params containing overflow-triggering values
- Trigger allocation failure or memory corruption to achieve denial of service or attempt privilege escalation
How to detect it
Review kernel logs (dmesg, /var/log/kern.log) for oops or panic messages containing snd_compress_check_input or compress_offload; correlate with audit logs showing unusual ioctl calls on audio devices by non-privileged users.
What your security team should do
- Prioritize kernel upgrades on any remaining systems still running kernels older than 3.17
- Audit local user access to /dev/snd/* nodes and apply least-privilege controls
- Monitor for kernel oops or panic logs referencing compress_offload.c
The record
The snd_compress_check_input function in sound/core/compress_offload.c in the ALSA subsystem in the Linux kernel before 3.17 does not properly check for an integer overflow, which allows local users to cause a denial of service (insufficient memory allocation) or possibly have unspecified other impact via a crafted SNDRV_COMPRESS_SET_PARAMS ioctl call.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | linux | 0 | 4.0.2-1 |
| Debian:12 | linux | 0 | 4.0.2-1 |
| Debian:13 | linux | 0 | 4.0.2-1 |
| Debian:8 | linux | 0 | 3.16.7-ckt25-2+deb8u3 |
| SUSE:Linux Enterprise Desktop 12 SP1 | kernel-default | 0 | 3.12.62-60.62.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | kernel-source | 0 | 3.12.62-60.62.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | kernel-syms | 0 | 3.12.62-60.62.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | kernel-xen | 0 | 3.12.62-60.62.1 |
| SUSE:Linux Enterprise Live Patching 12 | kgraft-patch-SLE12-SP1_Update_7 | 0 | 1-4.2 |
| SUSE:Linux Enterprise Module for Public Cloud 12 | kernel-ec2 | 0 | 3.12.62-60.62.1 |
| SUSE:Linux Enterprise Module for Public Cloud 12 | kernel-ec2 | 0 | 3.12.61-52.66.1 |
| SUSE:Linux Enterprise Real Time 12 SP1 | kernel-compute | 0 | 3.12.61-60.18.1 |
| SUSE:Linux Enterprise Real Time 12 SP1 | kernel-compute_debug | 0 | 3.12.61-60.18.1 |
| SUSE:Linux Enterprise Real Time 12 SP1 | kernel-rt | 0 | 3.12.61-60.18.1 |
| SUSE:Linux Enterprise Real Time 12 SP1 | kernel-rt_debug | 0 | 3.12.61-60.18.1 |
| SUSE:Linux Enterprise Real Time 12 SP1 | kernel-source-rt | 0 | 3.12.61-60.18.1 |
| SUSE:Linux Enterprise Real Time 12 SP1 | kernel-syms-rt | 0 | 3.12.61-60.18.1 |
| SUSE:Linux Enterprise Server 12 SP1 | kernel-default | 0 | 3.12.62-60.62.1 |
| SUSE:Linux Enterprise Server 12 SP1 | kernel-source | 0 | 3.12.62-60.62.1 |
| SUSE:Linux Enterprise Server 12 SP1 | kernel-syms | 0 | 3.12.62-60.62.1 |
| SUSE:Linux Enterprise Server 12 SP1 | kernel-xen | 0 | 3.12.62-60.62.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 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.62-60.62.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | kernel-source | 0 | 3.12.62-60.62.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | kernel-syms | 0 | 3.12.62-60.62.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | kernel-xen | 0 | 3.12.62-60.62.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | kernel-docs | 0 | 3.12.62-60.62.3 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | kernel-obs-build | 0 | 3.12.62-60.62.1 |
| SUSE:Linux Enterprise Workstation Extension 12 SP1 | kernel-default | 0 | 3.12.62-60.62.1 |
| Ubuntu:14.04:LTS | linux | 0 | 3.13.0-101.148 |
| Ubuntu:14.04:LTS | linux-aws | 0 | 4.4.0-1002.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 |
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