CVE-2015-7550
Medium · 5.5CVSS
5.5
EPSS
0.4%
Published
Feb 8, 2016
CISA due date
—
Cloudanix analysis
A programming mistake in the Linux kernel lets certain programs running on the same computer crash the entire system.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Race Condition
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Medium
What it actually does
Race condition in keyctl_read_key allows NULL pointer dereference via concurrent keyctl_revoke and keyctl_read calls on the same key.
Why it matters to the business
Local users can crash Linux systems, causing unplanned downtime and potential loss of availability on servers and workstations.
How an attack unfolds
An attacker compiles a program that rapidly alternates keyctl_revoke and keyctl_read operations on a key the process controls, winning the race to trigger the NULL dereference before the kernel update in 4.3.4.
How to fix it
Upgrade the Linux kernel to version 4.3.4 or newer; apply vendor backports where available for supported distributions.
How to confirm the fix worked
Verify running kernel version is at least 4.3.4; attempt to reproduce the race condition in a controlled test environment and confirm absence of crash.
Typical attack path
- Obtain local unprivileged access to a Linux system
- Create or reference a keyring entry
- Execute crafted binary that triggers concurrent revoke/read keyctl calls
- Trigger kernel NULL dereference resulting in panic or oops
How to detect it
Search kernel logs and crash dumps for NULL pointer dereference entries referencing keyctl_read_key or keyctl.c around the time of system instability.
- keyctl_read_key
- security/keys/keyctl.c
- NULL pointer dereference.*keyctl
What your security team should do
- Prioritize kernel updates on all Linux hosts
- Review and restrict unprivileged keyctl usage via SELinux or AppArmor policies where possible
- Monitor kernel logs for key-related oops messages
The record
The keyctl_read_key function in security/keys/keyctl.c in the Linux kernel before 4.3.4 does not properly use a semaphore, which allows local users to cause a denial of service (NULL pointer dereference and system crash) or possibly have unspecified other impact via a crafted application that leverages a race condition between keyctl_revoke and keyctl_read calls.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | linux | 0 | 4.3.3-3 |
| Debian:12 | linux | 0 | 4.3.3-3 |
| Debian:13 | linux | 0 | 4.3.3-3 |
| Debian:6.0 | linux-2.6 | 0 | 2.6.32-48squeeze18 |
| Debian:7 | linux | 0 | 3.2.73-2+deb7u2 |
| Debian:8 | linux | 0 | 3.16.7-ckt20-1+deb8u2 |
| Mageia:5 | dracut | 0 | 038-21.mga5 |
| Mageia:5 | kernel | 0 | 4.4.13-1.mga5 |
| Mageia:5 | kernel-linus | 0 | 4.4.13-1.mga5 |
| Mageia:5 | kernel-tmb | 0 | 4.4.13-1.mga5 |
| Mageia:5 | kernel-userspace-headers | 0 | 4.4.13-1.mga5 |
| Mageia:5 | kmod-vboxadditions | 0 | 5.0.16-6.mga5 |
| Mageia:5 | kmod-virtualbox | 0 | 5.0.16-6.mga5 |
| Mageia:5 | kmod-xtables-addons | 0 | 2.10-7.mga5 |
| SUSE:Linux Enterprise Desktop 11 SP4 | kernel-default | 0 | 3.0.101-71.1 |
| SUSE:Linux Enterprise Desktop 11 SP4 | kernel-pae | 0 | 3.0.101-71.1 |
| SUSE:Linux Enterprise Desktop 11 SP4 | kernel-source | 0 | 3.0.101-71.1 |
| SUSE:Linux Enterprise Desktop 11 SP4 | kernel-syms | 0 | 3.0.101-71.1 |
| SUSE:Linux Enterprise Desktop 11 SP4 | kernel-trace | 0 | 3.0.101-71.1 |
| SUSE:Linux Enterprise Desktop 11 SP4 | kernel-xen | 0 | 3.0.101-71.1 |
| SUSE:Linux Enterprise Desktop 12 | kernel-default | 0 | 3.12.51-52.34.1 |
| SUSE:Linux Enterprise Desktop 12 | kernel-source | 0 | 3.12.51-52.34.1 |
| SUSE:Linux Enterprise Desktop 12 | kernel-syms | 0 | 3.12.51-52.34.1 |
| SUSE:Linux Enterprise Desktop 12 | kernel-xen | 0 | 3.12.51-52.34.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | kernel-default | 0 | 3.12.53-60.30.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | kernel-source | 0 | 3.12.53-60.30.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | kernel-syms | 0 | 3.12.53-60.30.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | kernel-xen | 0 | 3.12.53-60.30.1 |
| SUSE:Linux Enterprise Live Patching 12 | kgraft-patch-SLE12-SP1_Update_3 | 0 | 1-2.1 |
| SUSE:Linux Enterprise Live Patching 12 | kgraft-patch-SLE12_Update_10 | 0 | 1-2.1 |
| SUSE:Linux Enterprise Module for Public Cloud 12 | kernel-ec2 | 0 | 3.12.51-52.34.1 |
| SUSE:Linux Enterprise Module for Public Cloud 12 | kernel-ec2 | 0 | 3.12.53-60.30.1 |
| SUSE:Linux Enterprise Real Time 11 SP4 | kernel-rt | 0 | 3.0.101.rt130-51.1 |
| SUSE:Linux Enterprise Real Time 11 SP4 | kernel-rt_trace | 0 | 3.0.101.rt130-51.1 |
| SUSE:Linux Enterprise Real Time 11 SP4 | kernel-source-rt | 0 | 3.0.101.rt130-51.1 |
| SUSE:Linux Enterprise Real Time 11 SP4 | kernel-syms-rt | 0 | 3.0.101.rt130-51.1 |
| SUSE:Linux Enterprise Server 11 SP2-LTSS | kernel-default | 0 | 3.0.101-0.7.40.1 |
| SUSE:Linux Enterprise Server 11 SP2-LTSS | kernel-ec2 | 0 | 3.0.101-0.7.40.1 |
| SUSE:Linux Enterprise Server 11 SP2-LTSS | kernel-pae | 0 | 3.0.101-0.7.40.1 |
| SUSE:Linux Enterprise Server 11 SP2-LTSS | kernel-source | 0 | 3.0.101-0.7.40.1 |
| SUSE:Linux Enterprise Server 11 SP2-LTSS | kernel-syms | 0 | 3.0.101-0.7.40.1 |
| SUSE:Linux Enterprise Server 11 SP2-LTSS | kernel-trace | 0 | 3.0.101-0.7.40.1 |
| SUSE:Linux Enterprise Server 11 SP2-LTSS | kernel-xen | 0 | 3.0.101-0.7.40.1 |
| SUSE:Linux Enterprise Server 11 SP3-LTSS | kernel-bigsmp | 0 | 3.0.101-0.47.79.1 |
| SUSE:Linux Enterprise Server 11 SP3-LTSS | kernel-default | 0 | 3.0.101-0.47.79.1 |
| SUSE:Linux Enterprise Server 11 SP3-LTSS | kernel-ec2 | 0 | 3.0.101-0.47.79.1 |
| SUSE:Linux Enterprise Server 11 SP3-LTSS | kernel-pae | 0 | 3.0.101-0.47.79.1 |
| SUSE:Linux Enterprise Server 11 SP3-LTSS | kernel-source | 0 | 3.0.101-0.47.79.1 |
| SUSE:Linux Enterprise Server 11 SP3-LTSS | kernel-syms | 0 | 3.0.101-0.47.79.1 |
| SUSE:Linux Enterprise Server 11 SP3-LTSS | kernel-trace | 0 | 3.0.101-0.47.79.1 |
| SUSE:Linux Enterprise Server 11 SP3-LTSS | kernel-xen | 0 | 3.0.101-0.47.79.1 |
| SUSE:Linux Enterprise Server 11 SP4 | kernel-default | 0 | 3.0.101-71.1 |
| SUSE:Linux Enterprise Server 11 SP4 | kernel-ec2 | 0 | 3.0.101-71.1 |
| SUSE:Linux Enterprise Server 11 SP4 | kernel-pae | 0 | 3.0.101-71.1 |
| SUSE:Linux Enterprise Server 11 SP4 | kernel-ppc64 | 0 | 3.0.101-71.1 |
| SUSE:Linux Enterprise Server 11 SP4 | kernel-source | 0 | 3.0.101-71.1 |
| SUSE:Linux Enterprise Server 11 SP4 | kernel-syms | 0 | 3.0.101-71.1 |
| SUSE:Linux Enterprise Server 11 SP4 | kernel-trace | 0 | 3.0.101-71.1 |
| SUSE:Linux Enterprise Server 11 SP4 | kernel-xen | 0 | 3.0.101-71.1 |
| SUSE:Linux Enterprise Server 12 | kernel-default | 0 | 3.12.51-52.34.1 |
| SUSE:Linux Enterprise Server 12 | kernel-source | 0 | 3.12.51-52.34.1 |
| SUSE:Linux Enterprise Server 12 | kernel-syms | 0 | 3.12.51-52.34.1 |
| SUSE:Linux Enterprise Server 12 | kernel-xen | 0 | 3.12.51-52.34.1 |
| SUSE:Linux Enterprise Server 12 SP1 | kernel-default | 0 | 3.12.53-60.30.1 |
| SUSE:Linux Enterprise Server 12 SP1 | kernel-source | 0 | 3.12.53-60.30.1 |
| SUSE:Linux Enterprise Server 12 SP1 | kernel-syms | 0 | 3.12.53-60.30.1 |
| SUSE:Linux Enterprise Server 12 SP1 | kernel-xen | 0 | 3.12.53-60.30.1 |
| SUSE:Linux Enterprise Server 12 SP1 | lttng-modules | 0 | 2.7.0-3.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | kernel-default | 0 | 3.0.101-71.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | kernel-ec2 | 0 | 3.0.101-71.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | kernel-pae | 0 | 3.0.101-71.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | kernel-ppc64 | 0 | 3.0.101-71.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | kernel-source | 0 | 3.0.101-71.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | kernel-syms | 0 | 3.0.101-71.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | kernel-trace | 0 | 3.0.101-71.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | kernel-xen | 0 | 3.0.101-71.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | kernel-default | 0 | 3.12.51-52.34.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | kernel-source | 0 | 3.12.51-52.34.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | kernel-syms | 0 | 3.12.51-52.34.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | kernel-xen | 0 | 3.12.51-52.34.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | kernel-default | 0 | 3.12.53-60.30.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | kernel-source | 0 | 3.12.53-60.30.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | kernel-syms | 0 | 3.12.53-60.30.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | kernel-xen | 0 | 3.12.53-60.30.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | lttng-modules | 0 | 2.7.0-3.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | kernel-docs | 0 | 3.0.101-71.2 |
| SUSE:Linux Enterprise Software Development Kit 12 | kernel-docs | 0 | 3.12.51-52.34.3 |
| SUSE:Linux Enterprise Software Development Kit 12 | kernel-obs-build | 0 | 3.12.51-52.34.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | kernel-docs | 0 | 3.12.53-60.30.2 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | kernel-obs-build | 0 | 3.12.53-60.30.2 |
| SUSE:Linux Enterprise Workstation Extension 12 | kernel-default | 0 | 3.12.51-52.34.1 |
| SUSE:Linux Enterprise Workstation Extension 12 SP1 | kernel-default | 0 | 3.12.53-60.30.1 |
| SUSE:Manager 2.1 | kernel-bigsmp | 0 | 3.0.101-0.47.79.1 |
| SUSE:Manager 2.1 | kernel-default | 0 | 3.0.101-0.47.79.1 |
| SUSE:Manager 2.1 | kernel-ec2 | 0 | 3.0.101-0.47.79.1 |
| SUSE:Manager 2.1 | kernel-source | 0 | 3.0.101-0.47.79.1 |
| SUSE:Manager 2.1 | kernel-syms | 0 | 3.0.101-0.47.79.1 |
| SUSE:Manager 2.1 | kernel-trace | 0 | 3.0.101-0.47.79.1 |
| SUSE:Manager 2.1 | kernel-xen | 0 | 3.0.101-0.47.79.1 |
| SUSE:Manager Proxy 2.1 | kernel-bigsmp | 0 | 3.0.101-0.47.79.1 |
| SUSE:Manager Proxy 2.1 | kernel-default | 0 | 3.0.101-0.47.79.1 |
| SUSE:Manager Proxy 2.1 | kernel-ec2 | 0 | 3.0.101-0.47.79.1 |
| SUSE:Manager Proxy 2.1 | kernel-source | 0 | 3.0.101-0.47.79.1 |
| SUSE:Manager Proxy 2.1 | kernel-syms | 0 | 3.0.101-0.47.79.1 |
| SUSE:Manager Proxy 2.1 | kernel-trace | 0 | 3.0.101-0.47.79.1 |
| SUSE:Manager Proxy 2.1 | kernel-xen | 0 | 3.0.101-0.47.79.1 |
| SUSE:OpenStack Cloud 5 | kernel-bigsmp | 0 | 3.0.101-0.47.79.1 |
| SUSE:OpenStack Cloud 5 | kernel-default | 0 | 3.0.101-0.47.79.1 |
| SUSE:OpenStack Cloud 5 | kernel-ec2 | 0 | 3.0.101-0.47.79.1 |
| SUSE:OpenStack Cloud 5 | kernel-source | 0 | 3.0.101-0.47.79.1 |
| SUSE:OpenStack Cloud 5 | kernel-syms | 0 | 3.0.101-0.47.79.1 |
| SUSE:OpenStack Cloud 5 | kernel-trace | 0 | 3.0.101-0.47.79.1 |
| SUSE:OpenStack Cloud 5 | kernel-xen | 0 | 3.0.101-0.47.79.1 |
| Ubuntu:14.04:LTS | linux | 0 | 3.13.0-79.123 |
| Ubuntu:14.04:LTS | linux-aws | 0 | 4.4.0-1002.2 |
| Ubuntu:14.04:LTS | linux-lts-utopic | 0 | 3.16.0-60.80~14.04.1 |
| Ubuntu:14.04:LTS | linux-lts-vivid | 0 | 3.19.0-51.57~14.04.1 |
| Ubuntu:14.04:LTS | linux-lts-wily | 0 | 4.2.0-27.32~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.4.0-2.16 |
| 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-1003.4 |
| Ubuntu:16.04:LTS | linux-snapdragon | 0 | 4.4.0-1012.12 |
| 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-39885 In the Linux kernel, the following vulnerability has been resolved: ocfs2: fix recursive… Also affects linux
- CVE-2025-39883 In the Linux kernel, the following vulnerability has been resolved: mm/memory-failure… Also affects linux
- CVE-2025-39876 In the Linux kernel, the following vulnerability has been resolved: net: fec: Fix… Also affects linux
- CVE-2025-39869 In the Linux kernel, the following vulnerability has been resolved: dmaengine: ti: edma… Also affects linux
- CVE-2025-39873 In the Linux kernel, the following vulnerability has been resolved: can: xilinx_can… Also affects linux
- CVE-2025-39863 In the Linux kernel, the following vulnerability has been resolved: wifi: brcmfmac: fix… Also affects linux
- CVE-2025-39865 In the Linux kernel, the following vulnerability has been resolved: tee: fix NULL pointer… Also affects linux
- CVE-2025-39866 In the Linux kernel, the following vulnerability has been resolved: fs: writeback: fix… Also affects linux