Cloudanix VulnDB

CVE-2021-29154

High · 7.8

CVSS

7.8

EPSS

0.9%

Published

Apr 8, 2021

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A flaw in how the Linux kernel handles certain low-level programs lets attackers who already have access to a machine take complete control of the entire system.

Exploitation
Local Privilege
Attacker needs
Low Privilege
Complexity
Low
Impact
Full Compromise
Component
OS kernel
Class
Command Injection
Remediation
Upgrade
Effort
Medium
Patch risk
Medium

What it actually does

Incorrect computation of branch displacements in the x86 BPF JIT compiler allows a local attacker to execute arbitrary code within the kernel context by loading a crafted BPF program.

Why it matters to the business

Unpatched Linux systems remain exposed to full kernel compromise, enabling attackers to bypass all user-space protections, access sensitive data, install persistent malware, or disrupt operations across servers, containers, and embedded devices.

How an attack unfolds

An attacker with local access crafts a BPF program whose branch offsets are miscalculated by the JIT due to the displacement bug; when the kernel JITs and executes the program, control flow is redirected to attacker-controlled instructions running with kernel privileges.

How to fix it

Upgrade the Linux kernel to a version containing commit 26f55a59dc65ff77cd1c4b37991e26497fc68049 or later; rebuild and reboot all affected systems; disable unprivileged BPF loading via sysctl where JIT is not required.

How to confirm the fix worked

Verify the running kernel was built from a tree containing commit 26f55a59dc65ff77cd1c4b37991e26497fc68049; confirm sysctl net.core.bpf_jit_enable reflects the updated compiler behavior; test with known BPF programs that previously triggered the displacement error.

Typical attack path

  1. Obtain local user access on a vulnerable Linux system
  2. Load a malicious BPF program via bpf() syscall or eBPF tools
  3. Trigger JIT compilation of the program
  4. Exploit the miscomputed branch displacement to hijack kernel execution
  5. Escalate to full kernel code execution and system takeover

How to detect it

Review kernel audit logs and BPF event traces for unexpected program loads followed by anomalous kernel behavior; examine dmesg and /var/log/kern.log for JIT-related warnings or crashes around the time of suspicious activity.

What your security team should do

  • Prioritize patching all production kernels to the fixed commit
  • Restrict unprivileged BPF access on systems that cannot be immediately updated
  • Monitor for new kernel releases and automate patch deployment pipelines
  • Audit container hosts and embedded devices for outdated kernels

The record

BPF JIT compilers in the Linux kernel through 5.11.12 have incorrect computation of branch displacements, allowing them to execute arbitrary code within the kernel context. This affects arch/x86/net/bpf_jit_comp.c and arch/x86/net/bpf_jit_comp32.c.

Affected packages

Ecosystem Package Introduced Fixed
AlmaLinux:8 bpftool 0 4.18.0-372.9.1.el8
AlmaLinux:8 kernel 0 4.18.0-372.9.1.el8
AlmaLinux:8 kernel-abi-stablelists 0 4.18.0-372.9.1.el8
AlmaLinux:8 kernel-core 0 4.18.0-372.9.1.el8
AlmaLinux:8 kernel-cross-headers 0 4.18.0-372.9.1.el8
AlmaLinux:8 kernel-debug 0 4.18.0-372.9.1.el8
AlmaLinux:8 kernel-debug-core 0 4.18.0-372.9.1.el8
AlmaLinux:8 kernel-debug-devel 0 4.18.0-372.9.1.el8
AlmaLinux:8 kernel-debug-modules 0 4.18.0-372.9.1.el8
AlmaLinux:8 kernel-debug-modules-extra 0 4.18.0-372.9.1.el8
AlmaLinux:8 kernel-devel 0 4.18.0-372.9.1.el8
AlmaLinux:8 kernel-doc 0 4.18.0-372.9.1.el8
AlmaLinux:8 kernel-headers 0 4.18.0-372.9.1.el8
AlmaLinux:8 kernel-modules 0 4.18.0-372.9.1.el8
AlmaLinux:8 kernel-modules-extra 0 4.18.0-372.9.1.el8
AlmaLinux:8 kernel-tools 0 4.18.0-372.9.1.el8
AlmaLinux:8 kernel-tools-libs 0 4.18.0-372.9.1.el8
AlmaLinux:8 kernel-tools-libs-devel 0 4.18.0-372.9.1.el8
AlmaLinux:8 perf 0 4.18.0-372.9.1.el8
AlmaLinux:8 python3-perf 0 4.18.0-372.9.1.el8
Android :linux_kernel: :0 :2021-07-05
Debian:11 linux 0 5.10.28-1
Debian:12 linux 0 5.10.28-1
Debian:13 linux 0 5.10.28-1
Debian:9 linux 0 4.9.272-1
Debian:9 linux-4.19 0 4.19.194-1~deb9u1
Mageia:7 kernel 0 5.10.30-1.mga7
Mageia:7 kernel-linus 0 5.10.30-1.mga7
Mageia:7 kmod-virtualbox 0 6.1.18-14.mga7
Mageia:7 kmod-xtables-addons 0 3.13-20.mga7
Mageia:8 kernel 0 5.10.30-1.mga8
Mageia:8 kernel-linus 0 5.10.30-1.mga8
Mageia:8 kmod-virtualbox 0 6.1.18-24.mga8
Mageia:8 kmod-xtables-addons 0 3.13-40.mga8
Red Hat:enterprise_linux:7::client bpftool 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::client bpftool-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::client kernel 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::client kernel-abi-whitelists 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::client kernel-bootwrapper 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::client kernel-debug 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::client kernel-debug-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::client kernel-debug-devel 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::client kernel-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::client kernel-debuginfo-common-ppc64 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::client kernel-debuginfo-common-ppc64le 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::client kernel-debuginfo-common-s390x 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::client kernel-debuginfo-common-x86_64 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::client kernel-devel 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::client kernel-doc 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::client kernel-kdump 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::client kernel-kdump-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::client kernel-kdump-devel 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::client kernel-tools 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::client kernel-tools-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::client kernel-tools-libs 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::client kernel-tools-libs-devel 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::client perf 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::client perf-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::client python-perf 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::client python-perf-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::computenode bpftool 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::computenode bpftool-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::computenode kernel 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::computenode kernel-abi-whitelists 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::computenode kernel-bootwrapper 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::computenode kernel-debug 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::computenode kernel-debug-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::computenode kernel-debug-devel 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::computenode kernel-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::computenode kernel-debuginfo-common-ppc64 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::computenode kernel-debuginfo-common-ppc64le 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::computenode kernel-debuginfo-common-s390x 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::computenode kernel-debuginfo-common-x86_64 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::computenode kernel-devel 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::computenode kernel-doc 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::computenode kernel-kdump 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::computenode kernel-kdump-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::computenode kernel-kdump-devel 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::computenode kernel-tools 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::computenode kernel-tools-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::computenode kernel-tools-libs 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::computenode kernel-tools-libs-devel 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::computenode perf 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::computenode perf-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::computenode python-perf 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::computenode python-perf-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::server bpftool 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::server bpftool-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::server kernel 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::server kernel-abi-whitelists 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::server kernel-bootwrapper 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::server kernel-debug 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::server kernel-debug-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::server kernel-debug-devel 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::server kernel-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::server kernel-debuginfo-common-ppc64 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::server kernel-debuginfo-common-ppc64le 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::server kernel-debuginfo-common-s390x 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::server kernel-debuginfo-common-x86_64 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::server kernel-devel 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::server kernel-doc 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::server kernel-kdump 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::server kernel-kdump-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::server kernel-kdump-devel 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::server kernel-tools 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::server kernel-tools-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::server kernel-tools-libs 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::server kernel-tools-libs-devel 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::server perf 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::server perf-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::server python-perf 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::server python-perf-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::workstation bpftool 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::workstation bpftool-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::workstation kernel 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::workstation kernel-abi-whitelists 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::workstation kernel-bootwrapper 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::workstation kernel-debug 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::workstation kernel-debug-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::workstation kernel-debug-devel 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::workstation kernel-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::workstation kernel-debuginfo-common-ppc64 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::workstation kernel-debuginfo-common-ppc64le 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::workstation kernel-debuginfo-common-s390x 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::workstation kernel-debuginfo-common-x86_64 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::workstation kernel-devel 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::workstation kernel-doc 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::workstation kernel-kdump 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::workstation kernel-kdump-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::workstation kernel-kdump-devel 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::workstation kernel-tools 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::workstation kernel-tools-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::workstation kernel-tools-libs 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::workstation kernel-tools-libs-devel 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::workstation perf 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::workstation perf-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::workstation python-perf 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:7::workstation python-perf-debuginfo 0 0:3.10.0-1160.41.1.el7
Red Hat:enterprise_linux:8::baseos bpftool 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos bpftool-debuginfo 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-abi-stablelists 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-core 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-cross-headers 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-debug 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-debug-core 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-debug-debuginfo 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-debug-devel 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-debug-modules 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-debug-modules-extra 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-debuginfo 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-debuginfo-common-aarch64 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-debuginfo-common-ppc64le 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-debuginfo-common-s390x 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-debuginfo-common-x86_64 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-devel 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-doc 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-headers 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-modules 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-modules-extra 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-tools 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-tools-debuginfo 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-tools-libs 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-tools-libs-devel 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-zfcpdump 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-zfcpdump-core 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-zfcpdump-debuginfo 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-zfcpdump-devel 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-zfcpdump-modules 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos kernel-zfcpdump-modules-extra 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos perf 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos perf-debuginfo 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos python3-perf 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::baseos python3-perf-debuginfo 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::crb bpftool 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::crb bpftool-debuginfo 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::crb kernel 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::crb kernel-abi-stablelists 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::crb kernel-core 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::crb kernel-cross-headers 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::crb kernel-debug 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::crb kernel-debug-core 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::crb kernel-debug-debuginfo 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::crb kernel-debug-devel 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::crb kernel-debug-modules 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::crb kernel-debug-modules-extra 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::crb kernel-debuginfo 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::crb kernel-debuginfo-common-aarch64 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::crb kernel-debuginfo-common-ppc64le 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::crb kernel-debuginfo-common-s390x 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::crb kernel-debuginfo-common-x86_64 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::crb kernel-devel 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::crb kernel-doc 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::crb kernel-headers 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::crb kernel-modules 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::crb kernel-modules-extra 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::crb kernel-tools 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::crb kernel-tools-debuginfo 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::crb kernel-tools-libs 0 0:4.18.0-372.9.1.el8
Red Hat:enterprise_linux:8::crb kernel-tools-libs-devel 0 0:4.18.0-372.9.1.el8

Related vulnerabilities