Cloudanix VulnDB

CVE-2020-8835

High · 7.8

CVSS

7.8

EPSS

6.0%

Published

Apr 2, 2020

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

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.

Weaponized
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

  1. Obtain local unprivileged shell on target Linux system
  2. Compile and load malicious BPF bytecode via bpf() syscall
  3. Trigger verifier miscalculation on 32-bit operations
  4. Perform out-of-bounds read/write to corrupt kernel memory
  5. 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