CVE-2024-36623
High · 8.1Moby Race Condition vulnerability
CVSS
8.1
EPSS
0.6%
Published
Nov 29, 2024
CISA due date
—
Cloudanix analysis
A timing bug in container management software can let simultaneous actions corrupt data or crash programs, potentially disrupting services until fixed.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Moderate
- Impact
- Data Tampering
- Component
- Container Runtime
- Class
- Race Condition
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Race condition in streamformatter allows multiple concurrent write operations on shared streams, causing data corruption or application crashes.
Why it matters to the business
Organizations running affected moby versions risk container runtime instability, service outages, and data integrity problems; low EPSS indicates limited immediate exploitation risk but high CVSS warrants prompt attention.
How an attack unfolds
An attacker triggers concurrent operations against the streamformatter to overlap writes on shared resources, resulting in corruption or crashes; no named threat actors or KEV associations reported.
How to fix it
Upgrade moby/moby to the fixed commit 5689dabfb357b673abdb4391eef426f297d7d1bb or a later release containing the patch.
How to confirm the fix worked
Confirm the installed commit or version includes 5689dabfb357b673abdb4391eef426f297d7d1bb; perform concurrent write tests on streamformatter paths to verify absence of races.
Typical attack path
- Identify hosts running vulnerable moby v25.0.3 or earlier
- Trigger multiple concurrent write operations via container or API interactions
- Cause overlapping writes leading to corruption or crash
How to detect it
Review moby process logs and container runtime events for indicators of concurrent write failures or abrupt crashes; correlate with streamformatter activity.
What your security team should do
- Apply the referenced commit or newer moby release across all affected deployments
- Monitor runtime logs for stream write errors or unexpected crashes
- Prioritize upgrades on internet-facing or high-value container hosts
The record
moby v25.0.3 has a Race Condition vulnerability in the streamformatter package which can be used to trigger multiple concurrent write operations resulting in data corruption or application crashes.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Go | github.com/moby/moby | 0 | 26.0.0+incompatible |
| Go | github.com/moby/moby | 0 | 25.0.4 |
| Go | github.com/moby/moby | 0 | 26.0.0 |
| Chainguard | amazon-cloudwatch-agent-operator | 0 | 3.3.1-r0 |
| Chainguard | amazon-cloudwatch-agent-operator-compat | 0 | 3.3.0-r1 |
| Chainguard | amazon-cloudwatch-agent-operator-fips-compat | 0 | 3.3.0-r1 |
| Chainguard | amazon-ecs-agent | 0 | 1.98.0-r2 |
| Chainguard | amazon-ecs-agent | 0 | 1.99.0-r0 |
| Chainguard | amazon-ecs-agent-fips | 0 | 1.99.0-r0 |
| Chainguard | cert-manager-1.12 | 0 | 1.12.17-r10 |
| Chainguard | cert-manager-acmesolver-1.12 | 0 | 1.12.17-r10 |
| Chainguard | cert-manager-acmesolver-1.12-iamguarded-compat | 0 | 1.12.17-r10 |
| Chainguard | cert-manager-controller-1.12 | 0 | 1.12.17-r10 |
| Chainguard | cert-manager-controller-1.12-iamguarded-compat | 0 | 1.12.17-r10 |
| Chainguard | cert-manager-webhook-1.12 | 0 | 1.12.17-r10 |
| Chainguard | cluster-api-1.7 | 0 | 1.7.9-r7 |
| Chainguard | cluster-api-1.7-capd-manager-compat | 0 | 1.7.9-r7 |
| Chainguard | cluster-api-1.7-clusterctl | 0 | 1.7.9-r7 |
| Chainguard | cluster-api-1.7-clusterctl-compat | 0 | 1.7.9-r7 |
| Chainguard | cluster-api-1.7-controller | 0 | 1.7.9-r7 |
| Chainguard | cluster-api-1.7-controller-compat | 0 | 1.7.9-r7 |
| Chainguard | cluster-api-1.7-kubeadm-bootstrap-controller | 0 | 1.7.9-r7 |
| Chainguard | cluster-api-1.7-kubeadm-bootstrap-controller-compat | 0 | 1.7.9-r7 |
| Chainguard | cluster-api-1.7-kubeadm-control-plane-controller | 0 | 1.7.9-r7 |
| Chainguard | cluster-api-1.7-kubeadm-control-plane-controller-compat | 0 | 1.7.9-r7 |
| Chainguard | cluster-api-fips-1.7 | 0 | 1.7.9-r1 |
| Chainguard | cluster-api-fips-1.7-capd-manager-compat | 0 | 1.7.9-r1 |
| Chainguard | cluster-api-fips-1.7-clusterctl | 0 | 1.7.9-r1 |
| Chainguard | cluster-api-fips-1.7-clusterctl-compat | 0 | 1.7.9-r1 |
| Chainguard | cluster-api-fips-1.7-controller | 0 | 1.7.9-r1 |
| Chainguard | cluster-api-fips-1.7-controller-compat | 0 | 1.7.9-r1 |
| Chainguard | cluster-api-fips-1.7-kubeadm-bootstrap-controller | 0 | 1.7.9-r1 |
| Chainguard | cluster-api-fips-1.7-kubeadm-bootstrap-controller-compat | 0 | 1.7.9-r1 |
| Chainguard | cluster-api-fips-1.7-kubeadm-control-plane-controller | 0 | 1.7.9-r1 |
| Chainguard | cluster-api-fips-1.7-kubeadm-control-plane-controller-compat | 0 | 1.7.9-r1 |
| Chainguard | cmctl-1.12 | 0 | 1.12.17-r10 |
| Chainguard | docker-machine-driver-harvester | 0 | 0 |
| Chainguard | flux-compat | 0 | 2.7.3-r0 |
| Chainguard | gitlab-docker-machine-17.11 | 0 | 0 |
| Chainguard | gitlab-docker-machine-17.9 | 0 | 0 |
| Chainguard | gitlab-docker-machine-18.0 | 0 | 0 |
| Chainguard | gitlab-docker-machine-18.1 | 0 | 0 |
| Chainguard | gitlab-docker-machine-18.2 | 0 | 0 |
| Chainguard | gitlab-docker-machine-18.3 | 0 | 0 |
| Chainguard | gitlab-docker-machine-18.5 | 0 | 0 |
| Chainguard | gitlab-docker-machine-18.6 | 0 | 0 |
| Chainguard | gitlab-docker-machine-fips-17.11 | 0 | 0 |
| Chainguard | gitlab-docker-machine-fips-18.0 | 0 | 0 |
| Chainguard | gitlab-docker-machine-fips-18.1 | 0 | 0 |
| Chainguard | gitlab-docker-machine-fips-18.2 | 0 | 0 |
| Chainguard | gitlab-docker-machine-fips-18.3 | 0 | 0 |
| Chainguard | gitlab-docker-machine-fips-18.4 | 0 | 0 |
| Chainguard | gitlab-docker-machine-fips-18.5 | 0 | 0 |
| Chainguard | gitlab-docker-machine-fips-18.6 | 0 | 0 |
| Chainguard | gitlab-runner-17.11 | 0 | 0 |
| Chainguard | gitlab-runner-17.9 | 0 | 0 |
| Chainguard | gitlab-runner-18.0 | 0 | 0 |
| Chainguard | gitlab-runner-18.1 | 0 | 0 |
| Chainguard | gitlab-runner-18.2 | 0 | 0 |
| Chainguard | gitlab-runner-18.3 | 0 | 0 |
| Chainguard | gitlab-runner-18.4 | 0 | 18.4.0-r2 |
| Chainguard | gitlab-runner-18.5 | 0 | 0 |
| Chainguard | gitlab-runner-18.6 | 0 | 0 |
| Chainguard | gitlab-runner-fips-17.11 | 0 | 0 |
| Chainguard | gitlab-runner-fips-18.0 | 0 | 0 |
| Chainguard | gitlab-runner-fips-18.1 | 0 | 0 |
| Chainguard | gitlab-runner-fips-18.2 | 0 | 0 |
| Chainguard | gitlab-runner-fips-18.3 | 0 | 0 |
| Chainguard | gitlab-runner-fips-18.4 | 0 | 0 |
| Chainguard | gitlab-runner-fips-18.5 | 0 | 0 |
| Chainguard | gitlab-runner-fips-18.6 | 0 | 0 |
| Chainguard | gitlab-runner-helper-17.11 | 0 | 0 |
| Chainguard | gitlab-runner-helper-17.9 | 0 | 0 |
| Chainguard | gitlab-runner-helper-18.0 | 0 | 0 |
| Chainguard | gitlab-runner-helper-18.1 | 0 | 0 |
| Chainguard | gitlab-runner-helper-18.2 | 0 | 0 |
| Chainguard | gitlab-runner-helper-18.3 | 0 | 0 |
| Chainguard | gitlab-runner-helper-18.4 | 0 | 18.4.0-r2 |
| Chainguard | gitlab-runner-helper-18.5 | 0 | 0 |
| Chainguard | gitlab-runner-helper-18.6 | 0 | 18.6.2-r0 |
| Chainguard | gitlab-runner-helper-compat-17.11 | 0 | 0 |
| Chainguard | gitlab-runner-helper-compat-17.9 | 0 | 0 |
| Chainguard | gitlab-runner-helper-compat-18.0 | 0 | 0 |
| Chainguard | gitlab-runner-helper-compat-18.1 | 0 | 0 |
| Chainguard | gitlab-runner-helper-compat-18.2 | 0 | 0 |
| Chainguard | gitlab-runner-helper-compat-18.3 | 0 | 0 |
| Chainguard | gitlab-runner-helper-compat-18.4 | 0 | 18.4.0-r2 |
| Chainguard | gitlab-runner-helper-compat-18.5 | 0 | 0 |
| Chainguard | gitlab-runner-helper-compat-18.6 | 0 | 0 |
| Chainguard | gitlab-runner-helper-compat-fips-17.11 | 0 | 0 |
| Chainguard | gitlab-runner-helper-compat-fips-18.0 | 0 | 0 |
| Chainguard | gitlab-runner-helper-compat-fips-18.1 | 0 | 0 |
| Chainguard | gitlab-runner-helper-compat-fips-18.2 | 0 | 0 |
| Chainguard | gitlab-runner-helper-compat-fips-18.3 | 0 | 0 |
| Chainguard | gitlab-runner-helper-compat-fips-18.4 | 0 | 0 |
| Chainguard | gitlab-runner-helper-compat-fips-18.5 | 0 | 0 |
| Chainguard | gitlab-runner-helper-compat-fips-18.6 | 0 | 0 |
| Chainguard | gitlab-runner-helper-fips-17.11 | 0 | 0 |
| Chainguard | gitlab-runner-helper-fips-18.0 | 0 | 0 |
| Chainguard | gitlab-runner-helper-fips-18.1 | 0 | 0 |
| Chainguard | gitlab-runner-helper-fips-18.2 | 0 | 0 |
| Chainguard | gitlab-runner-helper-fips-18.3 | 0 | 0 |
| Chainguard | gitlab-runner-helper-fips-18.4 | 0 | 0 |
| Chainguard | gitlab-runner-helper-fips-18.5 | 0 | 0 |
| Chainguard | gitlab-runner-helper-fips-18.6 | 0 | 0 |
| Chainguard | gitlab-runner-helper-oci-entrypoint-17.11 | 0 | 0 |
| Chainguard | gitlab-runner-helper-oci-entrypoint-17.9 | 0 | 0 |
| Chainguard | gitlab-runner-helper-oci-entrypoint-18.0 | 0 | 0 |
| Chainguard | gitlab-runner-helper-oci-entrypoint-18.1 | 0 | 0 |
| Chainguard | gitlab-runner-helper-oci-entrypoint-18.2 | 0 | 0 |
| Chainguard | gitlab-runner-helper-oci-entrypoint-18.3 | 0 | 0 |
| Chainguard | gitlab-runner-helper-oci-entrypoint-18.4 | 0 | 18.4.0-r2 |
| Chainguard | gitlab-runner-helper-oci-entrypoint-18.5 | 0 | 0 |
| Chainguard | gitlab-runner-helper-oci-entrypoint-18.6 | 0 | 0 |
| Chainguard | gitlab-runner-helper-oci-entrypoint-fips-17.11 | 0 | 0 |
| Chainguard | gitlab-runner-helper-oci-entrypoint-fips-18.0 | 0 | 0 |
| Chainguard | gitlab-runner-helper-oci-entrypoint-fips-18.1 | 0 | 0 |
| Chainguard | gitlab-runner-helper-oci-entrypoint-fips-18.2 | 0 | 0 |
| Chainguard | gitlab-runner-helper-oci-entrypoint-fips-18.3 | 0 | 0 |
| Chainguard | gitlab-runner-helper-oci-entrypoint-fips-18.4 | 0 | 0 |
| Chainguard | gitlab-runner-helper-oci-entrypoint-fips-18.5 | 0 | 0 |
| Chainguard | gitlab-runner-helper-oci-entrypoint-fips-18.6 | 0 | 0 |
| Chainguard | gitlab-runner-oci-entrypoint-17.11 | 0 | 0 |
| Chainguard | gitlab-runner-oci-entrypoint-17.9 | 0 | 0 |
| Chainguard | gitlab-runner-oci-entrypoint-18.0 | 0 | 0 |
| Chainguard | gitlab-runner-oci-entrypoint-18.1 | 0 | 0 |
| Chainguard | gitlab-runner-oci-entrypoint-18.2 | 0 | 0 |
| Chainguard | gitlab-runner-oci-entrypoint-18.3 | 0 | 0 |
| Chainguard | gitlab-runner-oci-entrypoint-18.4 | 0 | 18.4.0-r2 |
| Chainguard | gitlab-runner-oci-entrypoint-18.5 | 0 | 0 |
| Chainguard | gitlab-runner-oci-entrypoint-18.6 | 0 | 0 |
| Chainguard | gitlab-runner-oci-entrypoint-fips-17.11 | 0 | 0 |
| Chainguard | gitlab-runner-oci-entrypoint-fips-18.0 | 0 | 0 |
| Chainguard | gitlab-runner-oci-entrypoint-fips-18.1 | 0 | 0 |
| Chainguard | gitlab-runner-oci-entrypoint-fips-18.2 | 0 | 0 |
| Chainguard | gitlab-runner-oci-entrypoint-fips-18.3 | 0 | 0 |
| Chainguard | gitlab-runner-oci-entrypoint-fips-18.4 | 0 | 0 |
| Chainguard | gitlab-runner-oci-entrypoint-fips-18.5 | 0 | 0 |
| Chainguard | gitlab-runner-oci-entrypoint-fips-18.6 | 0 | 0 |
| Chainguard | k3s | 0 | 0 |
| Chainguard | k3s-1.31 | 0 | 0 |
| Chainguard | k3s-1.32 | 0 | 0 |
| Chainguard | k3s-1.33 | 0 | 1.33.7.1-r1 |
| Chainguard | k3s-multicall | 0 | 1.34.1.1-r2 |
| Chainguard | k3s-multicall-1.31 | 0 | 0 |
| Chainguard | k3s-multicall-1.32 | 0 | 0 |
| Chainguard | k3s-multicall-1.33 | 0 | 1.33.5.1-r2 |
| Chainguard | k3s-static | 0 | 0 |
| Chainguard | k3s-static-1.31 | 0 | 0 |
| Chainguard | k3s-static-1.32 | 0 | 0 |
| Chainguard | kubevela | 0 | 1.9.13-r2 |
| Chainguard | kubevela-vela-cli | 0 | 1.9.13-r2 |
| Chainguard | kubevela-vela-core | 0 | 1.9.13-r2 |
| Chainguard | kubevela-vela-core-compat | 0 | 1.9.13-r2 |
| Chainguard | loki-2.9 | 0 | 0 |
| Chainguard | loki-2.9-logcli | 0 | 0 |
| Chainguard | loki-2.9-loki-canary | 0 | 0 |
| Chainguard | loki-2.9-promtail | 0 | 0 |
| Chainguard | loki-fips-2.9 | 0 | 0 |
| Chainguard | loki-fips-2.9 | 0 | 2.9.15-r1 |
| Chainguard | loki-fips-2.9-logcli | 0 | 0 |
| Chainguard | loki-fips-2.9-logcli | 0 | 2.9.15-r1 |
| Chainguard | loki-fips-2.9-loki-canary | 0 | 0 |
| Chainguard | loki-fips-2.9-loki-canary | 0 | 2.9.15-r1 |
| Chainguard | loki-fips-2.9-promtail | 0 | 0 |
| Chainguard | loki-fips-2.9-promtail | 0 | 2.9.15-r1 |
| Chainguard | prometheus-2.51 | 0 | 2.51.2-r48 |
| Chainguard | promxy-fips | 0 | 0 |
| Chainguard | pulumi | 0 | 3.142.0-r1 |
| Chainguard | pulumi-language-go | 0 | 3.142.0-r1 |
| Chainguard | pulumi-language-nodejs | 0 | 3.142.0-r1 |
| Chainguard | pulumi-language-python | 0 | 3.142.0-r1 |
| Chainguard | py3-docker | 0 | 0 |
| Chainguard | py3-supported-docker | 0 | 0 |
| Chainguard | py3.10-docker | 0 | 0 |
| Chainguard | py3.11-docker | 0 | 0 |
| Chainguard | py3.12-docker | 0 | 0 |
| Chainguard | py3.13-docker | 0 | 0 |
| Chainguard | rancher-2.11 | 0 | 0 |
| Chainguard | rancher-2.12 | 0 | 2.12.1-r0 |
| Chainguard | rancher-agent-2.10 | 0 | 0 |
| Chainguard | rancher-agent-2.11 | 0 | 2.11.9-r0 |
| Chainguard | rancher-agent-2.12 | 0 | 0 |
| Chainguard | rancher-agent-2.13 | 0 | 0 |
| Chainguard | rancher-agent-2.9 | 0 | 2.9.12-r5 |
| Chainguard | rancher-machine | 0 | 0 |
| Chainguard | rke2-runtime-1.31-charts | 0 | 1.31.13.2.1-r3 |
| Chainguard | rke2-runtime-1.32 | 0 | 1.32.11.2.1-r1 |
| Chainguard | rke2-runtime-1.32-charts | 0 | 1.32.9.2.1-r3 |
| Chainguard | rke2-runtime-1.33 | 0 | 1.33.7.2.1-r1 |
| Chainguard | rke2-runtime-1.33-charts | 0 | 1.33.5.2.1-r1 |
| Chainguard | rke2-runtime-1.34 | 0 | 1.34.2.2.1-r4 |
| Chainguard | rke2-runtime-1.34-charts | 0 | 1.34.2.2.1-r4 |
| Chainguard | vault-1.16 | 0 | 1.16.3-r29 |
| Chainguard | vault-1.16-compat | 0 | 1.16.3-r26 |
| Chainguard | vault-1.17 | 0 | 1.17.6-r21 |
| Chainguard | vault-1.17-compat | 0 | 1.17.6-r18 |
| Chainguard | vela-cli | 0 | 1.9.13-r2 |
| Chainguard | vela-core | 0 | 1.9.13-r2 |
| Debian:11 | docker.io | 0 | No fix |
Related vulnerabilities
- CVE-2024-36621 Moby Race Condition vulnerability Also affects github.com/moby/moby
- CVE-2024-41110 Moby is an open-source project created by Docker for software containerization. Also affects github.com/moby/moby
- CVE-2026-33186 gRPC-Go is the Go language implementation of gRPC. Also affects amazon-cloudwatch-agent-operator
- CVE-2026-27142 Actions which insert URLs into the content attribute of HTML meta tags are not escaped. Also affects amazon-cloudwatch-agent-operator
- CVE-2026-27139 On Unix platforms, when listing the contents of a directory using File.ReadDir or… Also affects amazon-cloudwatch-agent-operator
- CVE-2026-25679 url.Parse insufficiently validated the host/authority component and accepted some invalid… Also affects amazon-cloudwatch-agent-operator
- CVE-2025-68121 During session resumption in crypto/tls, if the underlying Config has its ClientCAs or… Also affects amazon-cloudwatch-agent-operator
- CVE-2025-61732 A discrepancy between how Go and C/C++ comments were parsed allowed for code smuggling… Also affects amazon-cloudwatch-agent-operator