CVE-2020-8835
High · 7.8CVSS
7.8
EPSS
6.0%
Published
Apr 2, 2020
CISA due date
—
Cloudanix analysis
A flaw in the Linux kernel lets local users break out of normal restrictions and take over the whole computer if the system is not updated.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Full Compromise
- Component
- OS kernel
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Medium
What it actually does
Improper bounds checking on 32-bit register operations in the BPF verifier allows out-of-bounds reads and writes in kernel memory, enabling arbitrary kernel memory corruption from user space.
Why it matters to the business
Local attackers can gain full control of affected Linux systems, leading to data theft, persistence, or denial of service; weaponized public exploits increase risk on unpatched kernels despite stable low EPSS.
How an attack unfolds
An attacker with local access loads a specially crafted BPF program that triggers incorrect bounds tracking during verification; the resulting out-of-bounds access corrupts kernel structures, allowing escalation to root privileges.
How to fix it
Upgrade the Linux kernel to version 5.6.1, 5.5.14, or 5.4.29 (or later stable releases containing commit f2d67fec0b43edce8c416101cdc52e71145b5fef) and reboot.
How to confirm the fix worked
Verify running kernel version is at or above the fixed releases; confirm absence of the vulnerable verifier logic by inspecting /proc/version or source trees; test with available proof-of-concept programs in isolated environments.
Typical attack path
- Obtain local unprivileged shell on target Linux system
- Compile and load malicious BPF bytecode via bpf() syscall
- Trigger verifier miscalculation on 32-bit operations
- Perform out-of-bounds read/write to corrupt kernel memory
- Escalate privileges and execute arbitrary code in kernel context
How to detect it
Review kernel audit logs and BPF program load events for unusual or repeated bpf() calls from non-root users; investigate any kernel oops or panic traces referencing verifier.c; correlate with process execution of tools known to load BPF bytecode.
What your security team should do
- Prioritize kernel upgrades on all internet-facing and multi-user Linux systems within 30 days
- Restrict unprivileged BPF loading via sysctl kernel.unprivileged_bpf_disabled=1 where feasible
- Monitor for new kernel releases and apply them through standard patch management
- Audit systems for custom BPF programs that may interact with the verifier
The record
In the Linux kernel 5.5.0 and newer, the bpf verifier (kernel/bpf/verifier.c) did not properly restrict the register bounds for 32-bit operations, leading to out-of-bounds reads and writes in kernel memory. The vulnerability also affects the Linux 5.4 stable series, starting with v5.4.7, as the introducing commit was backported to that branch. This vulnerability was fixed in 5.6.1, 5.5.14, and 5.4.29. (issue is aka ZDI-CAN-10780)
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | linux | 0 | 5.5.13-2 |
| Debian:12 | linux | 0 | 5.5.13-2 |
| Debian:13 | linux | 0 | 5.5.13-2 |
| Mageia:7 | exfat-utils | 0 | 1.3.0-2.mga7 |
| Mageia:7 | kernel | 0 | 5.5.14-1.mga7 |
| Mageia:7 | kernel-linus | 0 | 5.5.15-1.mga7 |
| Mageia:7 | kmod-virtualbox | 0 | 6.0.18-8.mga7 |
| Mageia:7 | kmod-xtables-addons | 0 | 3.8-8.mga7 |
| Mageia:7 | wireguard-tools | 0 | 1.0.20200319-1.mga7 |
| 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-aws-hwe | 0 | 4.15.0-1030.31~16.04.1 |
| Ubuntu:16.04:LTS | linux-azure | 0 | 4.11.0-1009.9 |
| Ubuntu:16.04:LTS | linux-gcp | 0 | 4.10.0-1004.4 |
| Ubuntu:16.04:LTS | linux-hwe | 0 | 4.8.0-36.36~16.04.1 |
| Ubuntu:16.04:LTS | linux-kvm | 0 | 4.4.0-1004.9 |
| Ubuntu:16.04:LTS | linux-oracle | 0 | 4.15.0-1007.9~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: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-azure-5.3 | 0 | 5.3.0-1018.19~18.04.1 |
| Ubuntu:18.04:LTS | linux-azure-edge | 0 | No fix |
| Ubuntu:18.04:LTS | linux-gcp | 0 | 4.15.0-1001.1 |
| Ubuntu:18.04:LTS | linux-gcp-5.3 | 0 | 5.3.0-1016.17~18.04.1 |
| Ubuntu:18.04:LTS | linux-gcp-edge | 0 | No fix |
| Ubuntu:18.04:LTS | linux-gke-4.15 | 0 | 4.15.0-1030.32 |
| Ubuntu:18.04:LTS | linux-gke-5.0 | 0 | 5.0.0-1011.11~18.04.1 |
| Ubuntu:18.04:LTS | linux-gke-5.3 | 0 | 5.3.0-1016.17~18.04.1 |
| Ubuntu:18.04:LTS | linux-hwe | 0 | 5.3.0-45.37~18.04.1 |
| Ubuntu:18.04:LTS | linux-hwe-edge | 0 | No fix |
| 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-oem-osp1 | 0 | 5.0.0-1010.11 |
| Ubuntu:18.04:LTS | linux-oracle | 0 | 4.15.0-1007.9 |
| Ubuntu:18.04:LTS | linux-oracle-5.0 | 0 | 5.0.0-1007.12~18.04.1 |
| Ubuntu:18.04:LTS | linux-oracle-5.3 | 0 | 5.3.0-1013.14~18.04.1 |
| Ubuntu:18.04:LTS | linux-raspi2 | 0 | 4.13.0-1005.5 |
| Ubuntu:18.04:LTS | linux-raspi2-5.3 | 0 | 5.3.0-1021.23~18.04.1 |
| Ubuntu:18.04:LTS | linux-snapdragon | 0 | 4.4.0-1077.82 |
| Ubuntu:20.04:LTS | linux | 0 | 5.4.0-21.25 |
| Ubuntu:20.04:LTS | linux-aws | 0 | 5.4.0-1007.7 |
| Ubuntu:20.04:LTS | linux-azure | 0 | 5.4.0-1008.8 |
| Ubuntu:20.04:LTS | linux-gcp | 0 | 5.4.0-1007.7 |
| Ubuntu:20.04:LTS | linux-kvm | 0 | 5.4.0-1006.6 |
| Ubuntu:20.04:LTS | linux-oem-5.6 | 0 | 5.6.0-1007.7 |
| Ubuntu:20.04:LTS | linux-oracle | 0 | 5.4.0-1007.7 |
| Ubuntu:20.04:LTS | linux-raspi2 | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | linux-azure-edge | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | linux-gcp-edge | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | linux-hwe-edge | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | linux-raspi2 | 0 | No fix |
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