Skip to content
OpenAdvisories
Medium · 6.0 CVE-2021-43784 EUVD-2021-2591GHSA-v95c-p5hm-xq8fGO-2022-0274

Overflow in netlink bytemsg length field allows attacker to override netlink-based container configuration

Published Dec 6, 2021 · Updated Oct 15, 2024 · Assigned by GitHub_M

Description

runc is a CLI tool for spawning and running containers on Linux according to the OCI specification. In runc, netlink is used internally as a serialization system for specifying the relevant container configuration to the `C` portion of the code (responsible for the based namespace setup of containers). In all versions of runc prior to 1.0.3, the encoder did not handle the possibility of an integer overflow in the 16-bit length field for the byte array attribute type, meaning that a large enough malicious byte array attribute could result in the length overflowing and the attribute contents being parsed as netlink messages for container configuration. This vulnerability requires the attacker to have some control over the configuration of the container and would allow the attacker to bypass the namespace restrictions of the container by simply adding their own netlink payload which disables all namespaces. The main users impacted are those who allow untrusted images with untrusted configurations to run on their machines (such as with shared cloud infrastructure). runc version 1.0.3 contains a fix for this bug. As a workaround, one may try disallowing untrusted namespace paths from your container. It should be noted that untrusted namespace paths would allow the attacker to disable namespace protections entirely even in the absence of this bug.

Affected products

VendorProductAffectedFixed
opencontainers runc < 1.0.3 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 runc 1.0.3+ds1-1 —
Debian 13 runc 1.0.3+ds1-1 —
Debian 12 runc 1.0.3+ds1-1 —
Debian 10 runc 1.0.0~rc6+dfsg1-3+deb10u3 DLA-3735-1
Debian 9 runc 0.1.1+dfsg1-2+deb9u3 DLA-2841-1
ReleasePackageFixed inAdvisory
Ubuntu Pro 18.04 LTS runc No fix yet —
Ubuntu Pro 16.04 LTS runc 1.0.0~rc7+git20190403.029124da-0ubuntu1~16.04.4+esm4 USN-6088-2
ReleasePackageFixed inAdvisory
RHEL 9 runc 4:1.1.9-1.el9 RHSA-2023:6380

AlmaLinux

Errata ↗
ReleasePackageFixed inAdvisory
AlmaLinux 9 runc 4:1.1.9-1.el9 ALSA-2023:6380
ReleasePackageFixed inAdvisory
SLES 15 SP3 runc 1.0.3-27.1 SUSE-SU-2021:4171-1
SLES 15 SP2 runc 1.0.3-27.1 SUSE-SU-2021:4171-1
SLES 12 runc 1.0.3-16.18.1 SUSE-SU-2021:4059-1
Show 3 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLE Micro 5.1 runc 1.0.3-27.1 SUSE-SU-2021:4171-1
SLE Micro 5.0 runc 1.0.3-27.1 SUSE-SU-2021:4171-1
SUSE Enterprise Storage 7 runc 1.0.3-27.1 SUSE-SU-2021:4171-1
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed runc 1.0.3-1.1 openSUSE-SU-2024:11664-1
openSUSE Leap 15.3 runc 1.0.3-27.1 openSUSE-SU-2021:4171-1
openSUSE Leap 15.2 runc 1.0.3-lp152.2.12.1 openSUSE-SU-2021:1625-1
ReleasePackageFixed inAdvisory
Alpine v3.24 runc 1.0.3-r0 —
Alpine v3.23 runc 1.0.3-r0 —
Alpine v3.22 runc 1.0.3-r0 —
Alpine v3.21 runc 1.0.3-r0 —
Alpine v3.20 runc 1.0.3-r0 —
Show 5 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Alpine v3.19 runc 1.0.3-r0 —
Alpine v3.18 runc 1.0.3-r0 —
Alpine v3.17 runc 1.0.3-r0 —
Alpine v3.16 runc 1.0.3-r0 —
Alpine v3.15 runc 1.0.3-r0 —

Azure Linux

ReleasePackageFixed inAdvisory
Azure Linux 2 (CBL-Mariner) moby-runc 1.1.0-1 —

Oracle Linux

ReleasePackageFixed inAdvisory
Oracle Linux 9 runc 4:1.1.9-1.el9 ELSA-2023-6380

Affected packages

EcosystemPackageAffectedFixedRecord
Go github.com/opencontainers/runc < 1.0.3 1.0.3 GHSA-v95c-p5hm-xq8f
Go github.com/opencontainers/runc >= 1.0.1-0.20211012131345-9c444070ec7b, < 1.1.0 1.1.0 GO-2022-0274

Advisories 12

References