CVE-2026-15793
Docker vulnerability analysis and mitigation

Overview

CVE-2026-15793 is an argument injection vulnerability in Moby's BuildKit that allows a malicious Git source to trigger crafted command invocations on the host system. It affects BuildKit versions v0.30.0 through v0.31.1 and was published on July 21, 2026, with the advisory originally released by Docker/Moby on July 16, 2026. The vulnerability is classified as Moderate severity by the vendor, with a CVSS v4.0 base score of 7.3 (High) per NVD scoring (GitHub Advisory).

Technical details

The root cause is CWE-88 (Improper Neutralization of Argument Delimiters in a Command — Argument Injection). BuildKit custom frontends or clients using the raw low-level API can set the git.checkoutbundle=true option when checking out Git sources; if the referenced Git source is malicious, it can supply crafted arguments that are passed unsanitized to a command invoked on the host. Exploitation requires an attacker-controlled Git source combined with a custom frontend that enables the git.checkoutbundle flag — standard Dockerfile builds are not affected (GitHub Advisory).

Impact

Successful exploitation can result in arbitrary command execution on the BuildKit host, with potential for full confidentiality, integrity, and availability compromise of the host system (CVSS v4.0 scores VC:H/VI:H/VA:H). Because BuildKit often runs with elevated privileges in CI/CD pipelines and container build environments, a successful attack could enable an adversary to exfiltrate secrets, tamper with build artifacts, or pivot to other systems in the build infrastructure (GitHub Advisory, Feedly).

Exploitation steps

  1. Identify a target: Locate a CI/CD pipeline or build environment using BuildKit v0.30.0–v0.31.1 with a custom frontend or client that invokes the raw low-level API with git.checkoutbundle=true.
  2. Prepare a malicious Git repository: Craft a Git repository or bundle file containing specially delimited arguments in filenames, refs, or bundle metadata designed to inject additional OS-level commands when processed by BuildKit's Git checkout logic.
  3. Deliver the malicious source: Cause the target BuildKit instance to reference the attacker-controlled Git source — for example, by contributing a malicious dependency, compromising a referenced upstream repository, or social-engineering a developer into using the malicious source in a build definition.
  4. Trigger the build: Initiate a build using the custom frontend with git.checkoutbundle=true pointing to the malicious Git source, causing BuildKit to invoke the crafted command on the host.
  5. Achieve code execution: The injected arguments execute arbitrary commands on the BuildKit host, potentially enabling reverse shell establishment, credential theft, or further lateral movement within the build infrastructure (GitHub Advisory).

Indicators of compromise

  • Logs: BuildKit daemon logs showing unexpected or anomalous Git checkout commands, particularly those involving bundle files or unusual argument strings; OS-level audit logs (e.g., auditd) recording unexpected child process spawning from the BuildKit process.
  • Process: Unusual child processes spawned by the BuildKit daemon (e.g., shells like /bin/sh, /bin/bash, network tools like curl, wget, or nc) during a Git source checkout operation.
  • Network: Unexpected outbound network connections from the BuildKit host to unknown external IPs following a build that references an external Git source.
  • File System: Unexpected files written to the BuildKit host filesystem outside of normal build output directories, particularly scripts, binaries, or credential files, during or after a build using a custom frontend with bundle checkout enabled.

Mitigation and workarounds

The issue has been fixed in BuildKit v0.31.2 and later; users should upgrade immediately (GitHub Advisory). As a workaround, avoid using custom frontends or raw low-level API clients that set git.checkoutbundle=true, and ensure that all Git sources referenced in builds are from trusted, controlled repositories. Standard Dockerfile builds are not affected and do not require immediate action beyond upgrading the BuildKit daemon.

Community reactions

The vulnerability was reported by Zhibin Hu and Lei Wang of HuaweiCloud and credited to researcher ssst0n3, indicating responsible disclosure through coordinated channels. The advisory was published by BuildKit maintainer tonistiigi on July 16, 2026. Community tracking sites (VulnDB, Vulners, CVEFeed) indexed the CVE shortly after NVD publication on July 21, 2026, and it was noted in package management community digests, but no significant broader media coverage or notable researcher commentary beyond the advisory itself has been observed (GitHub Advisory).

Additional resources


SourceThis report was generated using AI

Related Docker vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-15793HIGH7.3
  • Docker logoDocker
  • docker.io-app
NoNoJul 21, 2026
CVE-2026-15792MEDIUM6
  • Docker logoDocker
  • docker.io
NoNoJul 21, 2026
CVE-2026-42505MEDIUM5.3
  • Go logoGo
  • kubescape-downloader-fips
NoYesJul 08, 2026
CVE-2026-14362MEDIUM4.9
  • Docker logoDocker
  • docker
NoNoJul 08, 2026
CVE-2026-15791LOW1.8
  • Docker logoDocker
  • docker.io
NoNoJul 21, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management