CVE-2016-10147
Medium · 5.5CVSS
5.5
EPSS
0.4%
Published
Jan 18, 2017
CISA due date
—
Cloudanix analysis
A local user on an old Linux system can deliberately crash the whole computer by asking the encryption subsystem to use an algorithm it cannot handle.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Medium
What it actually does
Local NULL pointer dereference in crypto/mcryptd.c triggered when an AF_ALG socket is bound to an incompatible algorithm such as mcryptd(md5), resulting in immediate kernel panic.
Why it matters to the business
A local user can crash the entire system at will, interrupting all services and workloads running on that host; the flaw has been public for nearly a decade with negligible exploitation activity and no ransomware usage.
How an attack unfolds
An attacker who already possesses a local shell on a vulnerable Linux kernel creates an AF_ALG socket, selects the mcryptd algorithm with an incompatible digest (md5), and triggers the NULL dereference path inside mcryptd.c, causing an immediate kernel crash.
How to fix it
Upgrade the Linux kernel to a version containing commit 48a992727d82cb7db076fa15d372178743b1f4cd (equivalent to 4.8.15 or later mainline) and reboot the affected hosts.
How to confirm the fix worked
Verify the running kernel is 4.8.15 or newer; attempt to reproduce the crash with a minimal AF_ALG test program on a non-production system to confirm the defect is absent.
Typical attack path
- Obtain local shell access on the target system
- Load or confirm presence of the mcryptd crypto module
- Invoke socket(AF_ALG, SOCK_SEQPACKET, 0) followed by bind() with an incompatible algorithm name
- Trigger the dereference to crash the kernel
How to detect it
Inspect kernel logs (dmesg, /var/log/kern.log, journalctl) for NULL pointer dereference crashes originating from mcryptd.c or crypto code paths; correlate with user processes that recently created AF_ALG sockets.
- mcryptd(md5)
- NULL pointer dereference in mcryptd
- crypto/mcryptd.c
What your security team should do
- Patch to a fixed kernel version at the next maintenance window
- Restrict local user accounts that can create AF_ALG sockets via LSM or seccomp filters where patching is delayed
- Monitor for kernel oops/panic logs containing mcryptd references
The record
crypto/mcryptd.c in the Linux kernel before 4.8.15 allows local users to cause a denial of service (NULL pointer dereference and system crash) by using an AF_ALG socket with an incompatible algorithm, as demonstrated by mcryptd(md5).
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | linux | 0 | 4.8.15-1 |
| Debian:12 | linux | 0 | 4.8.15-1 |
| Debian:13 | linux | 0 | 4.8.15-1 |
| Debian:14 | linux | 0 | 4.8.15-1 |
| Red Hat:enterprise_linux:7::client | kernel | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::client | kernel-abi-whitelists | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::client | kernel-bootwrapper | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::client | kernel-debug | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::client | kernel-debug-debuginfo | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::client | kernel-debug-devel | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::client | kernel-debuginfo | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::client | kernel-debuginfo-common-ppc64 | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::client | kernel-debuginfo-common-ppc64le | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::client | kernel-debuginfo-common-s390x | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::client | kernel-debuginfo-common-x86_64 | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::client | kernel-devel | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::client | kernel-doc | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::client | kernel-headers | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::client | kernel-kdump | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::client | kernel-kdump-debuginfo | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::client | kernel-kdump-devel | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::client | kernel-tools | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::client | kernel-tools-debuginfo | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::client | kernel-tools-libs | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::client | kernel-tools-libs-devel | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::client | perf | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::client | perf-debuginfo | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::client | python-perf | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::client | python-perf-debuginfo | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-abi-whitelists | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-bootwrapper | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-debug | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-debug-debuginfo | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-debug-devel | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-debuginfo | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-debuginfo-common-ppc64 | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-debuginfo-common-ppc64le | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-debuginfo-common-s390x | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-debuginfo-common-x86_64 | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-devel | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-doc | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-headers | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-kdump | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-kdump-debuginfo | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-kdump-devel | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-tools | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-tools-debuginfo | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-tools-libs | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-tools-libs-devel | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::computenode | perf | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::computenode | perf-debuginfo | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::computenode | python-perf | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::computenode | python-perf-debuginfo | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::server | kernel | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::server | kernel-abi-whitelists | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::server | kernel-bootwrapper | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::server | kernel-debug | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::server | kernel-debug-debuginfo | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::server | kernel-debug-devel | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::server | kernel-debuginfo | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::server | kernel-debuginfo-common-ppc64 | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::server | kernel-debuginfo-common-ppc64le | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::server | kernel-debuginfo-common-s390x | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::server | kernel-debuginfo-common-x86_64 | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::server | kernel-devel | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::server | kernel-doc | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::server | kernel-headers | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::server | kernel-kdump | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::server | kernel-kdump-debuginfo | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::server | kernel-kdump-devel | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::server | kernel-tools | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::server | kernel-tools-debuginfo | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::server | kernel-tools-libs | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::server | kernel-tools-libs-devel | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::server | perf | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::server | perf-debuginfo | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::server | python-perf | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::server | python-perf-debuginfo | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-abi-whitelists | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-bootwrapper | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-debug | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-debug-debuginfo | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-debug-devel | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-debuginfo | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-debuginfo-common-ppc64 | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-debuginfo-common-ppc64le | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-debuginfo-common-s390x | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-debuginfo-common-x86_64 | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-devel | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-doc | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-headers | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-kdump | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-kdump-debuginfo | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-kdump-devel | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-tools | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-tools-debuginfo | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-tools-libs | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-tools-libs-devel | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::workstation | perf | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::workstation | perf-debuginfo | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::workstation | python-perf | 0 | 0:3.10.0-693.el7 |
| Red Hat:enterprise_linux:7::workstation | python-perf-debuginfo | 0 | 0:3.10.0-693.el7 |
| Red Hat:rhel_extras_rt:7 | kernel-rt | 0 | 0:3.10.0-693.rt56.617.el7 |
| Red Hat:rhel_extras_rt:7 | kernel-rt-debug | 0 | 0:3.10.0-693.rt56.617.el7 |
| Red Hat:rhel_extras_rt:7 | kernel-rt-debug-debuginfo | 0 | 0:3.10.0-693.rt56.617.el7 |
| Red Hat:rhel_extras_rt:7 | kernel-rt-debug-devel | 0 | 0:3.10.0-693.rt56.617.el7 |
| Red Hat:rhel_extras_rt:7 | kernel-rt-debug-kvm | 0 | 0:3.10.0-693.rt56.617.el7 |
| Red Hat:rhel_extras_rt:7 | kernel-rt-debug-kvm-debuginfo | 0 | 0:3.10.0-693.rt56.617.el7 |
| Red Hat:rhel_extras_rt:7 | kernel-rt-debuginfo | 0 | 0:3.10.0-693.rt56.617.el7 |
| Red Hat:rhel_extras_rt:7 | kernel-rt-debuginfo-common-x86_64 | 0 | 0:3.10.0-693.rt56.617.el7 |
| Red Hat:rhel_extras_rt:7 | kernel-rt-devel | 0 | 0:3.10.0-693.rt56.617.el7 |
| Red Hat:rhel_extras_rt:7 | kernel-rt-doc | 0 | 0:3.10.0-693.rt56.617.el7 |
| Red Hat:rhel_extras_rt:7 | kernel-rt-kvm | 0 | 0:3.10.0-693.rt56.617.el7 |
| Red Hat:rhel_extras_rt:7 | kernel-rt-kvm-debuginfo | 0 | 0:3.10.0-693.rt56.617.el7 |
| Red Hat:rhel_extras_rt:7 | kernel-rt-trace | 0 | 0:3.10.0-693.rt56.617.el7 |
| Red Hat:rhel_extras_rt:7 | kernel-rt-trace-debuginfo | 0 | 0:3.10.0-693.rt56.617.el7 |
| Red Hat:rhel_extras_rt:7 | kernel-rt-trace-devel | 0 | 0:3.10.0-693.rt56.617.el7 |
| Red Hat:rhel_extras_rt:7 | kernel-rt-trace-kvm | 0 | 0:3.10.0-693.rt56.617.el7 |
| Red Hat:rhel_extras_rt:7 | kernel-rt-trace-kvm-debuginfo | 0 | 0:3.10.0-693.rt56.617.el7 |
| Ubuntu:14.04:LTS | linux-aws | 0 | 4.4.0-1002.2 |
| Ubuntu:14.04:LTS | linux-azure | 0 | 4.15.0-1023.24~14.04.1 |
| Ubuntu:14.04:LTS | linux-lts-xenial | 0 | 4.4.0-62.83~14.04.1 |
| Ubuntu:16.04:LTS | linux | 0 | 4.4.0-62.83 |
| Ubuntu:16.04:LTS | linux-aws | 0 | 4.4.0-1003.12 |
| Ubuntu:16.04:LTS | linux-azure | 0 | 4.11.0-1009.9 |
| Ubuntu:16.04:LTS | linux-euclid | 0 | 4.4.0-9019.20 |
| Ubuntu:16.04:LTS | linux-gcp | 0 | 4.10.0-1004.4 |
| Ubuntu:16.04:LTS | linux-gke | 0 | 4.4.0-1003.3 |
| Ubuntu:16.04:LTS | linux-hwe | 0 | 4.8.0-39.42~16.04.1 |
| Ubuntu:16.04:LTS | linux-kvm | 0 | 4.4.0-1004.9 |
| Ubuntu:16.04:LTS | linux-oem | 0 | 4.13.0-1008.9 |
| Ubuntu:16.04:LTS | linux-raspi2 | 0 | 4.4.0-1042.49 |
| Ubuntu:16.04:LTS | linux-snapdragon | 0 | 4.4.0-1046.50 |
| Ubuntu:18.04:LTS | linux | 0 | 4.13.0-16.19 |
| Ubuntu:18.04:LTS | linux-aws | 0 | 4.15.0-1001.1 |
| Ubuntu:18.04:LTS | linux-azure | 0 | 4.15.0-1002.2 |
| Ubuntu:18.04:LTS | linux-gcp | 0 | 4.15.0-1001.1 |
| Ubuntu:18.04:LTS | linux-kvm | 0 | 4.15.0-1002.2 |
| Ubuntu:18.04:LTS | linux-oem | 0 | 4.15.0-1002.3 |
| Ubuntu:18.04:LTS | linux-raspi2 | 0 | 4.13.0-1005.5 |
| Ubuntu:Pro:14.04:LTS | linux-lts-vivid | 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 |
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