Every CVE Search/ Get API key

CVE-2020-8835

Linux kernel bpf verifier vulnerability

7.8 HighPublic exploitFix available

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)

Attack profile

How easy it is to exploit

Attack vector
Local
Complexity
High
Privileges needed
Low
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

6.01%Down 4.2 points since Apr 14, 2021
90%50%10%1%

What each source reports

CVE List Score used 7.8

Linux kernel bpf verifier vulnerability

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)

Record
CVE-2020-8835
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H
Updated
2026-11-02
EUVDEUVD-2020-29678 7.8

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)

Record
EUVD-2020-29678
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H
Updated
2026-11-03
GitHub AdvisoriesGHSA-774r-wvx9-mm68 7.8

In the Linux kernel 5.5.0 and newer, the bpf verifier (kernel/bpf/verifier.c) did not properly...

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)

Record
GHSA-774r-wvx9-mm68
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-119, CWE-125
Updated
2026-11-02
NVD 7.8

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)

Record
CVE-2020-8835
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS 2.0
7.2 HighAV:L/AC:L/Au:N/C:C/I:C/A:C
Weakness
CWE-125, CWE-787
Updated
2026-11-02
OSVBELL-CVE-2020-8835 7.8

CVE-2020-8835 does not affect BellSoft software

Record
BELL-CVE-2020-8835
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSV 7.8

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)

Record
CVE-2020-8835
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
Show 5 moreShow less
OSVDEBIAN-CVE-2020-8835 7.8

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)

Record
DEBIAN-CVE-2020-8835
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVUBUNTU-CVE-2020-8835 7.8

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)

Record
UBUNTU-CVE-2020-8835
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H
CVSS 3.1
7.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVMGASA-2020-0156 No score

Updated kernel packages fix security vulnerabilities

This update is based on upstream 5.5.14 and fixes at least the following security vulnerabilities:

In the Linux kernel 5.3.10, there is a use-after-free (read) in the perf_trace_lock_acquire function (related to include/trace/events/lock.h) (CVE-2019-19769).

Manfred Paul discovered that the bpf verifier in the Linux kernel did not properly calculate register bounds for certain operations. A local attacker could use this to expose sensitive information (kernel memory) or gain administrative privileges (CVE-2020-8835).

Security fixes and hardenings to the mac00211 layer to prevent leaking keys and frames.

Other notable changes in this update:

  • WireGuard kernel module has been updated to v1.0.20200330 and the tools to v1.0.20200319.
  • exfat-utils has been rebuilt in core (was previously in tainted) as we now also ship the official upstream exfat driver.

For other upstream fixes in this update, see the referenced changelogs.

Record
MGASA-2020-0156
Updated
2026-11-02
OSVMGASA-2020-0158 No score

Updated kernel-linus packages fix security vulnerabilities

This update is based on upstream 5.5.15 and fixes at least the following security vulnerabilities:

In the Linux kernel 5.4.0-rc2, there is a use-after-free (read) in the __blk_add_trace function in kernel/trace/blktrace.c (which is used to fill out a blk_io_trace structure and place it in a per-cpu sub-buffer) (CVE-2019-19768).

In the Linux kernel 5.3.10, there is a use-after-free (read) in the perf_trace_lock_acquire function (related to include/trace/events/lock.h) (CVE-2019-19769).

A flaw was found in the way KVM hypervisor handled instruction emulation for the L2 guest when nested(=1) virtualization is enabled. In the instruction emulation, the L2 guest could trick the L0 hypervisor into accessing sensitive bits of the L1 hypervisor. An L2 guest could use this flaw to potentially access information of the L1 hypervisor (CVE-2020-2732).

There is a use-after-free vulnerability in the Linux kernel through 5.5.2 in the vc_do_resize function in drivers/tty/vt/vt.c (CVE-2020-8647).

There is a use-after-free vulnerability in the Linux kernel through 5.5.2 in the n_tty_receive_buf_common function in drivers/tty/n_tty.c (CVE-2020-8648).

Manfred Paul discovered that the bpf verifier in the Linux kernel did not properly calculate register bounds for certain operations. A local attacker could use this to expose sensitive information (kernel memory) or gain administrative privileges (CVE-2020-8835).

There is a use-after-free vulnerability in the Linux kernel through 5.5.2 in the vgacon_invert_region function in drivers/video/console/vgacon.c. (CVE-2020-8649).

An issue was discovered in the Linux kernel through 5.5.6. set_fdc in drivers/block/floppy.c leads to a wait_til_ready out-of-bounds read because the FDC index is not checked for errors before assigning it, aka CID-2e90ca68b0d2 (CVE-2020-9383).

An issue was discovered in the Linux kernel 5.4 and 5.5 through 5.5.6 on the AArch64 architecture. It ignores the top byte in the address passed to the brk system call, potentially moving the memory break downwards when the application expects it to move upwards, aka CID- dcde237319e6. This has been observed to cause heap corruption with the GNU C Library malloc implementation (CVE-2020-9391).

Security fixes and hardenings to the mac00211 layer to prevent leaking keys and frames.

For other upstream fixes in this update, see the referenced changelogs.

Record
MGASA-2020-0158
Updated
2026-11-02
OSVUSN-4313-1 No score

linux, linux-aws, linux-azure, linux-azure-5.3, linux-gcp, linux-gcp-5.3, linux-gke-5.3, linux-hwe, linux-kvm, linux-oracle, linux-oracle-5.3, linux-raspi2, linux-raspi2-5.3 vulnerability

Manfred Paul discovered that the bpf verifier in the Linux kernel did not properly calculate register bounds for certain operations. A local attacker could use this to expose sensitive information (kernel memory) or gain administrative privileges.

Record
USN-4313-1
Updated
2026-11-02

Affected products

Show 16 moreShow less

Affected packages

Affected packages
PackageAffectedFixed
linux
Debian:12
before 5.5.13-2
5.5.13-2
linux
Debian:13
before 5.5.13-2
5.5.13-2
linux
Debian:14
before 5.5.13-2
5.5.13-2
kernel
Mageia:7
From an advisory covering 2 CVEs
before 5.5.14-1.mga7
5.5.14-1.mga7
kmod-virtualbox
Mageia:7
From an advisory covering 2 CVEs
before 6.0.18-8.mga7
6.0.18-8.mga7
kmod-xtables-addons
Mageia:7
From an advisory covering 2 CVEs
before 3.8-8.mga7
3.8-8.mga7
wireguard-tools
Mageia:7
From an advisory covering 2 CVEs
before 1.0.20200319-1.mga7
1.0.20200319-1.mga7
exfat-utils
Mageia:7
From an advisory covering 2 CVEs
before 1.3.0-2.mga7
1.3.0-2.mga7
kernel-linus
Mageia:7
From an advisory covering 9 CVEs
before 5.5.15-1.mga7
5.5.15-1.mga7
linux-azure-5.3
Ubuntu:18.04:LTS
before 5.3.0-1018.19~18.04.1, plus listed versions
5.3.0-1007.8~18.04.15.3.0-1008.9~18.04.15.3.0-1009.10~18.04.15.3.0-1010.11~18.04.15.3.0-1012.13~18.04.15.3.0-1013.14~18.04.15.3.0-1016.17~18.04.1
5.3.0-1018.19~18.04.1
Show 9 moreShow less
Affected packages
PackageAffectedFixed
linux-gcp-5.3
Ubuntu:18.04:LTS
before 5.3.0-1016.17~18.04.1, plus listed versions
5.3.0-1008.9~18.04.15.3.0-1009.10~18.04.15.3.0-1010.11~18.04.15.3.0-1012.13~18.04.15.3.0-1014.15~18.04.1
5.3.0-1016.17~18.04.1
linux-gke-5.3
Ubuntu:18.04:LTS
before 5.3.0-1016.17~18.04.1, plus listed versions
5.3.0-1011.12~18.04.15.3.0-1012.13~18.04.15.3.0-1014.15~18.04.1
5.3.0-1016.17~18.04.1
linux-hwe
Ubuntu:18.04:LTS
before 5.3.0-45.37~18.04.1, plus listed versions
4.18.0-13.14~18.04.14.18.0-14.15~18.04.14.18.0-15.16~18.04.14.18.0-16.17~18.04.14.18.0-17.18~18.04.1
Show 19 moreShow less
4.18.0-18.19~18.04.14.18.0-20.21~18.04.14.18.0-21.22~18.04.14.18.0-22.23~18.04.14.18.0-24.25~18.04.14.18.0-25.26~18.04.15.0.0-23.24~18.04.15.0.0-25.26~18.04.15.0.0-27.28~18.04.15.0.0-29.31~18.04.15.0.0-31.33~18.04.15.0.0-32.34~18.04.25.0.0-35.38~18.04.15.0.0-36.39~18.04.15.0.0-37.40~18.04.15.3.0-26.28~18.04.15.3.0-28.30~18.04.15.3.0-40.32~18.04.15.3.0-42.34~18.04.1
5.3.0-45.37~18.04.1
linux-oracle-5.3
Ubuntu:18.04:LTS
before 5.3.0-1013.14~18.04.1, plus listed versions
5.3.0-1011.12~18.04.1
5.3.0-1013.14~18.04.1
linux-raspi2-5.3
Ubuntu:18.04:LTS
before 5.3.0-1021.23~18.04.1, plus listed versions
5.3.0-1017.19~18.04.15.3.0-1018.20~18.04.15.3.0-1019.21~18.04.1
5.3.0-1021.23~18.04.1
linux-azure-edge
Ubuntu:18.04:LTS
All versions, plus listed versions
4.18.0-1006.6~18.04.14.18.0-1007.7~18.04.14.18.0-1008.8~18.04.15.0.0-1012.12~18.04.2
None known
linux-gcp-edge
Ubuntu:18.04:LTS
All versions, plus listed versions
4.18.0-1004.5~18.04.14.18.0-1005.6~18.04.14.18.0-1006.7~18.04.14.18.0-1007.8~18.04.14.18.0-1008.9~18.04.1
Show 7 moreShow less
4.18.0-1009.10~18.04.14.18.0-1011.12~18.04.14.18.0-1012.13~18.04.14.18.0-1013.14~18.04.14.18.0-1015.16~18.04.15.0.0-1011.11~18.04.15.0.0-1013.13~18.04.1
None known
linux-hwe-edge
Ubuntu:18.04:LTS
All versions, plus listed versions
5.0.0-15.16~18.04.15.0.0-16.17~18.04.15.0.0-17.18~18.04.15.0.0-19.20~18.04.15.0.0-20.21~18.04.1
Show 5 moreShow less
5.3.0-19.20~18.04.25.3.0-22.24~18.04.15.3.0-23.25~18.04.15.3.0-23.25~18.04.25.3.0-24.26~18.04.2
None known
linux-raspi2
Ubuntu:20.04:LTS
All versions, plus listed versions
5.3.0-1007.85.3.0-1014.165.3.0-1015.175.3.0-1017.195.4.0-1004.45.4.0-1006.6
None known

Public exploits

Links only. Every CVE stores no exploit code.

Public exploits
SourceLinkDate
PoC in GitHubPrabhashaka/Exploitation-CVE-2020-88352020-05-12
PoC in GitHubsnappyJack/Rick_write_exp_CVE-2020-88352020-07-04
PoC in GitHubzilong3033/CVE-2020-88352020-09-30
PoC in GitHubSplendidSky/CVE-2020-88352020-10-18
MetasploitLinux eBPF ALU32 32-bit Invalid Bounds Tracking LPE2021-05-11
PoC in GitHubdigamma-ai/CVE-2020-8835-verification2021-06-04
PoC in GitHubjohnatag/INF8602-CVE-2020-88352023-03-20
PoC in GitHubWhatsWrongAndWhy/CVE-2020-88352026-07-21

History

History
RecordedChangedSources
affected, exploits, facts
aliasesEUVD
first indexedCVE List, GitHub Advisories, Metasploit, NVD, OSV, PoC in GitHub

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2020-8835 is a high vulnerability (CVSS 7.8) in Linux Kernel, published March 30, 2020. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 6.01%, the 93rd percentile. Fixed in linux 5.5.13-2.

References

Show 38 moreShow less
MoveEnter Open