The SentinelOne Annual Threat Report - A Defenders Guide from the FrontlinesThe SentinelOne Annual Threat ReportGet the Report
Experiencing a Breach?Blog
Get StartedContact Us
SentinelOne
  • Platform
    Platform Overview
    • Singularity Platform
      Welcome to Integrated Enterprise Security
    • AI for Security
      Leading the Way in AI-Powered Security Solutions
    • Securing AI
      Accelerate AI Adoption with Secure AI Tools, Apps, and Agents.
    • How It Works
      The Singularity XDR Difference
    • Singularity Marketplace
      One-Click Integrations to Unlock the Power of XDR
    • Pricing & Packaging
      Comparisons and Guidance at a Glance
    Data & AI
    • Purple AI
      Accelerate SecOps with Generative AI
    • Singularity Hyperautomation
      Easily Automate Security Processes
    • AI-SIEM
      The AI SIEM for the Autonomous SOC
    • Data Pipelines
      Security Data Pipeline for AI SIEM and Data Optimization
    • Singularity Data Lake
      AI-Powered, Unified Data Lake
    • Singularity Data Lake for Log Analytics
      Seamlessly Ingest Data from On-Prem, Cloud or Hybrid Environments
    Endpoint Security
    • Singularity Endpoint
      Autonomous Prevention, Detection, and Response
    • Singularity XDR
      Native & Open Protection, Detection, and Response
    • Singularity RemoteOps Forensics
      Orchestrate Forensics at Scale
    • Singularity Threat Intelligence
      Comprehensive Adversary Intelligence
    • Singularity Vulnerability Management
      Application & OS Vulnerability Management
    • Singularity Identity
      Identity Threat Detection and Response
    Cloud Security
    • Singularity Cloud Security
      Block Attacks with an AI-Powered CNAPP
    • Singularity Cloud Native Security
      Secure Cloud and Development Resources
    • Singularity Cloud Workload Security
      Real-Time Cloud Workload Protection Platform
    • Singularity Cloud Data Security
      AI-Powered Threat Detection for Cloud Storage
    • Singularity Cloud Security Posture Management
      Detect and Remediate Cloud Misconfigurations
    Securing AI
    • Prompt Security
      Secure AI Tools Across Your Enterprise
  • Why SentinelOne?
    Why SentinelOne?
    • Why SentinelOne?
      Cybersecurity Built for What’s Next
    • Our Customers
      Trusted by the World’s Leading Enterprises
    • Industry Recognition
      Tested and Proven by the Experts
    • About Us
      The Industry Leader in Autonomous Cybersecurity
    Compare SentinelOne
    • Arctic Wolf
    • Broadcom
    • CrowdStrike
    • Cybereason
    • Microsoft
    • Palo Alto Networks
    • Sophos
    • Splunk
    • Trellix
    • Trend Micro
    • Wiz
    Verticals
    • Energy
    • Federal Government
    • Finance
    • Healthcare
    • Higher Education
    • K-12 Education
    • Manufacturing
    • Retail
    • State and Local Government
  • Services
    Managed Services
    • Managed Services Overview
      Wayfinder Threat Detection & Response
    • Threat Hunting
      World-Class Expertise and Threat Intelligence
    • Managed Detection & Response
      24/7/365 Expert MDR Across Your Entire Environment
    • Incident Readiness & Response
      DFIR, Breach Readiness, & Compromise Assessments
    Support, Deployment, & Health
    • Technical Account Management
      Customer Success with Personalized Service
    • SentinelOne GO
      Guided Onboarding & Deployment Advisory
    • SentinelOne University
      Live and On-Demand Training
    • Services Overview
      Comprehensive Solutions for Seamless Security Operations
    • SentinelOne Community
      Community Login
  • Partners
    Our Network
    • MSSP Partners
      Succeed Faster with SentinelOne
    • Singularity Marketplace
      Extend the Power of S1 Technology
    • Cyber Risk Partners
      Enlist Pro Response and Advisory Teams
    • Technology Alliances
      Integrated, Enterprise-Scale Solutions
    • SentinelOne for AWS
      Hosted in AWS Regions Around the World
    • Channel Partners
      Deliver the Right Solutions, Together
    • SentinelOne for Google Cloud
      Unified, Autonomous Security Giving Defenders the Advantage at Global Scale
    • Partner Locator
      Your Go-to Source for Our Top Partners in Your Region
    Partner Portal→
  • Resources
    Resource Center
    • Case Studies
    • Data Sheets
    • eBooks
    • Reports
    • Videos
    • Webinars
    • Whitepapers
    • Events
    View All Resources→
    Blog
    • Feature Spotlight
    • For CISO/CIO
    • From the Front Lines
    • Identity
    • Cloud
    • macOS
    • SentinelOne Blog
    Blog→
    Tech Resources
    • SentinelLABS
    • Ransomware Anthology
    • Cybersecurity 101
  • About
    About SentinelOne
    • About SentinelOne
      The Industry Leader in Cybersecurity
    • Investor Relations
      Financial Information & Events
    • SentinelLABS
      Threat Research for the Modern Threat Hunter
    • Careers
      The Latest Job Opportunities
    • Press & News
      Company Announcements
    • Cybersecurity Blog
      The Latest Cybersecurity Threats, News, & More
    • FAQ
      Get Answers to Our Most Frequently Asked Questions
    • DataSet
      The Live Data Platform
    • S Foundation
      Securing a Safer Future for All
    • S Ventures
      Investing in the Next Generation of Security, Data and AI
  • Pricing
Get StartedContact Us
CVE Vulnerability Database
Vulnerability Database/CVE-2021-43784

CVE-2021-43784: Linuxfoundation Runc Privilege Escalation

CVE-2021-43784 is a privilege escalation vulnerability in Linuxfoundation Runc allowing attackers to bypass namespace restrictions through netlink message manipulation. This article covers technical details, affected versions, and mitigation.

Published: February 25, 2026

CVE-2021-43784 Overview

CVE-2021-43784 is an integer overflow vulnerability in runc, the CLI tool for spawning and running containers on Linux according to the OCI specification. The vulnerability exists in how runc uses netlink as an internal serialization system for specifying container configuration to the C portion of the code responsible for namespace setup. The encoder failed to handle the possibility of an integer overflow in the 16-bit length field for byte array attribute types, allowing a large enough malicious byte array attribute to cause the length to overflow and have attribute contents parsed as netlink messages for container configuration.

Critical Impact

Attackers with control over container configuration can bypass namespace restrictions by injecting malicious netlink payloads that disable all namespaces, potentially escaping container isolation in shared cloud infrastructure environments.

Affected Products

  • Linux Foundation runc versions prior to 1.0.3
  • Debian Linux 9.0 (Stretch)
  • Container platforms using vulnerable runc versions (Docker, Kubernetes, Podman)

Discovery Timeline

  • 2021-12-06 - CVE CVE-2021-43784 published to NVD
  • 2024-11-21 - Last updated in NVD database

Technical Details for CVE-2021-43784

Vulnerability Analysis

This vulnerability is classified as CWE-190 (Integer Overflow or Wraparound). The flaw exists in the netlink message handling code within runc's libcontainer component. When runc initializes a container, it uses netlink binary format to communicate configuration parameters between the Go and C portions of the codebase. The netlink message format uses a 16-bit unsigned integer for the length field, which can only represent values up to 65,535 bytes.

When an attacker supplies a byte array attribute larger than this maximum value, the length field wraps around due to integer overflow. This causes the parser in the C code (nsexec.c) to misinterpret the remaining bytes of the oversized attribute as new netlink messages. Since these messages control namespace configuration, an attacker can craft payloads that effectively disable all namespace protections.

The attack requires the attacker to have some control over container configuration, making environments that run untrusted images with untrusted configurations particularly vulnerable, such as shared cloud infrastructure and multi-tenant container platforms.

Root Cause

The root cause is the lack of bounds checking in the netlink message encoder within libcontainer/message_linux.go. The encoder did not validate that byte array attributes would fit within the 16-bit length field before serialization. This oversight allowed oversized attributes to cause integer overflow, resulting in the length field wrapping around and subsequent bytes being misinterpreted as control messages.

Attack Vector

The attack requires network access with low privileges and exploits the container configuration mechanism. An attacker must have the ability to influence container configuration, typically by providing a malicious container image or configuration file. The attack path involves:

  1. Crafting a container configuration with an oversized byte array attribute
  2. The netlink encoder processes this attribute, causing the 16-bit length field to overflow
  3. Bytes beyond the overflow point are interpreted as valid netlink messages
  4. Attacker-controlled netlink payloads can disable namespace protections
  5. Container escapes or privilege escalation becomes possible
go
// Security patch in libcontainer/container_linux.go - runc init: avoid netlink message length overflows
// Source: https://github.com/opencontainers/runc/commit/d72d057ba794164c3cce9451a00b72a78b25e1ae

	return data.Bytes(), nil
}

// netlinkError is an error wrapper type for use by custom netlink message
// types. Panics with errors are wrapped in netlinkError so that the recover
// in bootstrapData can distinguish intentional panics.
type netlinkError struct{ error }

// bootstrapData encodes the necessary data in netlink binary format
// as a io.Reader.
// Consumer can write the data to a bootstrap program
// such as one that uses nsenter package to bootstrap the container's
// init process correctly, i.e. with correct namespaces, uid/gid
// mapping etc.
-func (c *linuxContainer) bootstrapData(cloneFlags uintptr, nsMaps map[configs.NamespaceType]string, it initType) (io.Reader, error) {
+func (c *linuxContainer) bootstrapData(cloneFlags uintptr, nsMaps map[configs.NamespaceType]string, it initType) (_ io.Reader, Err error) {
	// create the netlink message
	r := nl.NewNetlinkRequest(int(InitMsg), 0)

+	// Our custom messages cannot bubble up an error using returns, instead
+	// they will panic with the specific error type, netlinkError. In that
+	// case, recover from the panic and return that as an error.
+	defer func() {
+		if r := recover(); r != nil {
+			if e, ok := r.(netlinkError); ok {
+				Err = e.error
+			} else {
+				panic(r)
+			}
+		}

Detection Methods for CVE-2021-43784

Indicators of Compromise

  • Unusual netlink message sizes in container initialization logs exceeding 65,535 bytes
  • Container processes running with unexpected namespace configurations or disabled namespaces
  • Anomalous container escape attempts or privilege escalation events from container contexts
  • Failed container initializations with netlink-related errors followed by successful starts with modified configurations

Detection Strategies

  • Monitor runc version across all container hosts and flag systems running versions prior to 1.0.3
  • Implement runtime security monitoring to detect containers with weakened or disabled namespace isolation
  • Deploy file integrity monitoring on runc binaries to detect tampering or downgrades
  • Use container image scanning to identify configurations with suspiciously large byte array attributes

Monitoring Recommendations

  • Enable audit logging for all container creation events and capture namespace configuration details
  • Monitor for containers running without expected namespace isolation (user, mount, network, PID namespaces)
  • Track container runtime errors related to netlink message parsing or configuration handling
  • Implement alerting for any container escape attempts or unexpected host namespace access

How to Mitigate CVE-2021-43784

Immediate Actions Required

  • Upgrade runc to version 1.0.3 or later immediately across all container hosts
  • Audit all running containers to ensure they are using namespace isolation as expected
  • Review and restrict which users and systems can provide container configurations
  • Implement image trust policies to prevent untrusted images from running on production systems

Patch Information

The vulnerability is fixed in runc version 1.0.3. Multiple commits address this issue:

  • GitHub runc Commit Update - Opens bind mount sources from host userns
  • GitHub runc Commit Fix - Avoids netlink message length overflows
  • GitHub runc Commit Bug Patch - Merge pull request from GHSA-v95c-p5hm-xq8f

For Debian systems, refer to the Debian LTS Announcement December 2021 for distribution-specific patching guidance.

Workarounds

  • Disallow untrusted namespace paths from container configurations to prevent namespace protection bypasses
  • Restrict container image sources to trusted registries only and enforce image signing
  • Implement strict admission control policies in Kubernetes or other orchestration platforms
  • Use seccomp profiles and AppArmor/SELinux to limit container capabilities even if namespace isolation fails
bash
# Configuration example - Verify runc version and update
# Check current runc version
runc --version

# Update runc on Debian/Ubuntu
sudo apt update && sudo apt install runc

# Update runc on RHEL/CentOS
sudo yum update runc

# Verify all containers have proper namespace isolation
docker inspect --format '{{.HostConfig.PidMode}} {{.HostConfig.NetworkMode}}' $(docker ps -q)

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

  • Vulnerability Details
  • TypePrivilege Escalation

  • Vendor/TechRunc

  • SeverityMEDIUM

  • CVSS Score5.0

  • EPSS Probability0.11%

  • Known ExploitedNo
  • CVSS Vector
  • CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:L
  • Impact Assessment
  • ConfidentialityHigh
  • IntegrityNone
  • AvailabilityLow
  • CWE References
  • CWE-190
  • Technical References
  • Project Zero Issue #2241

  • Debian LTS Announcement February 2024
  • Vendor Resources
  • GitHub runc Commit Update

  • GitHub runc Commit Fix

  • GitHub runc Commit Bug Patch

  • GitHub Security Advisory GHSA-v95c-p5hm-xq8f

  • Debian LTS Announcement December 2021
  • Related CVEs
  • CVE-2024-21626: Runc Container Escape Vulnerability

  • CVE-2025-52565: Linux Foundation runc DoS Vulnerability

  • CVE-2025-52881: Runc Race Condition Vulnerability

  • CVE-2024-45310: Linuxfoundation Runc Race Condition Flaw
Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the World’s Most Advanced Cybersecurity Platform

See how our intelligent, autonomous cybersecurity platform can protect your organization now and into the future.

Try SentinelOne
  • Get Started
  • Get a Demo
  • Product Tour
  • Why SentinelOne
  • Pricing & Packaging
  • FAQ
  • Contact
  • Contact Us
  • Customer Support
  • SentinelOne Status
  • Language
  • Platform
  • Singularity Platform
  • Singularity Endpoint
  • Singularity Cloud
  • Singularity AI-SIEM
  • Singularity Identity
  • Singularity Marketplace
  • Purple AI
  • Services
  • Wayfinder TDR
  • SentinelOne GO
  • Technical Account Management
  • Support Services
  • Verticals
  • Energy
  • Federal Government
  • Finance
  • Healthcare
  • Higher Education
  • K-12 Education
  • Manufacturing
  • Retail
  • State and Local Government
  • Cybersecurity for SMB
  • Resources
  • Blog
  • Labs
  • Case Studies
  • Videos
  • Product Tours
  • Events
  • Cybersecurity 101
  • eBooks
  • Webinars
  • Whitepapers
  • Press
  • News
  • Ransomware Anthology
  • Company
  • About Us
  • Our Customers
  • Careers
  • Partners
  • Legal & Compliance
  • Security & Compliance
  • Investor Relations
  • S Foundation
  • S Ventures

©2026 SentinelOne, All Rights Reserved.

Privacy Notice Terms of Use

English