← Back to Feed CACHED · 2026-09-18 01:52:29 · CACHE_KEY CVE-2026-79994
CVE-2026-79994 · CWE-367 · Disclosed 2026-09-15

The guest-to-host Unix-domain socket relay in Docker Sandboxes validates that a socket path is inside an…

ASSESSED — NOISGATE
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

CVE-2026-79994 is a time-of-check-to-time-of-use (TOCTOU) race condition in the guest-to-host Unix-domain socket relay used by **Docker Sandboxes** versions **0.37.0 through 0.41.9**.

CVE-2026-79994 is a time-of-check-to-time-of-use (TOCTOU) race condition in the guest-to-host Unix-domain socket relay used by Docker Sandboxes versions 0.37.0 through 0.41.9. The relay validates that a requested socket path lives inside the sandbox's authorized workspace directory, but then reconnects to the path by name rather than by a pinned file descriptor. A malicious guest process can swap an intermediate directory component for a symlink in the window between validation and connection, redirecting the host relay to *any* reachable AF_UNIX socket outside the workspace — including docker.sock, the host Docker daemon's control plane.

Docker tagged this 8.7 / High on some advisories, and that assessment is directionally correct but slightly generous. The TOCTOU race is reliable with retry loops, so attack complexity is effectively low once you have guest code execution — which is the *entire threat model* for a sandbox product that runs untrusted AI-agent code. However, the product launched in March 2026 and its installed base is still narrow compared to Docker Engine or Desktop. The blast radius is real but the exposure population tempers the fleet-wide urgency. We assess HIGH (7.5) rather than CRITICAL because the reachable socket inventory on a typical macOS developer host or CI runner is bounded, and because there is no confirmed exploitation or public PoC weaponizing this chain.

"Sandbox escape via symlink race lets malicious guest reach any host Unix socket"
02 · The Attack Path

4 steps from start to impact.

STEP 01

Gain code execution inside Docker Sandbox microVM

The attacker needs arbitrary code execution within the guest microVM. For Docker Sandboxes this is the *expected* operating condition — the product exists to run untrusted AI coding agents, third-party repository code, and autonomous tool-use workflows. No exploit is needed for this step; it is the product's design posture.
Conditions required:
  • Target organization runs Docker Sandboxes (versions 0.37.0–0.41.9)
  • Guest workspace has at least one host-mounted directory with a Unix socket path configured for relay
Where this breaks in practice:
  • Organization must actually use Docker Sandboxes — a product that launched March 2026 with a still-growing installed base
  • Sandbox must have a UDS relay configured (default for workspace mounts, but not universally enabled)
STEP 02

Identify a relayable socket path inside the workspace

The guest enumerates the workspace filesystem to find a Unix-domain socket path that the relay is configured to forward. The relay only proxies paths that pass the workspace-boundary check, so the attacker picks a path whose parent directories are writable from within the guest.
Conditions required:
  • At least one directory component in the socket path is writable by the guest process
  • The relay is actively listening for UDS forwarding requests
Where this breaks in practice:
  • If the workspace is mounted read-only or clone-mode, the guest cannot manipulate directory components
  • Some configurations restrict which socket paths are relayable
Detection/coverage: File-integrity monitoring on the host side of the workspace mount could flag unexpected directory deletions or symlink creation, but this is not a standard Docker Sandboxes configuration.
STEP 03

Win the TOCTOU race with a symlink swap

The guest rapidly deletes a parent directory in the validated socket path and replaces it with a symlink pointing outside the workspace — e.g., to /var/run/docker.sock or another high-value host socket. The relay's validation has already passed; it now calls connect() on the symlinked path, following it to the attacker's chosen target. TOCTOU races on filesystem paths are historically reliable with tight retry loops (sub-millisecond window).
Conditions required:
  • Write access to at least one intermediate directory in the socket path
  • Host relay does not re-validate the path or use O_NOFOLLOW / fd-based connect
Where this breaks in practice:
  • The race window is small but repeatable — typical TOCTOU exploits achieve >90% reliability within seconds of retry
  • If the host relay used openat() with O_NOFOLLOW or connected via a pre-opened fd, the race would fail — but the vulnerable versions do not
STEP 04

Connect to arbitrary host AF_UNIX socket

The host relay now connects to the attacker-chosen socket. If the target is docker.sock, the attacker gains full Docker API access on the host — equivalent to root. If the target is another service socket (e.g., SSH agent, gpg-agent, 1Password agent, IDE language server), the attacker can exfiltrate credentials, sign artifacts, or pivot laterally. The impact is bounded by which sockets exist and are reachable on the host.
Conditions required:
  • A high-value Unix socket exists on the host at a path reachable via symlink traversal
  • The target socket accepts connections without additional authentication beyond the socket itself
Where this breaks in practice:
  • On a locked-down CI runner, the socket inventory may be minimal
  • macOS developer workstations typically have docker.sock, SSH agent, and various tool sockets available
Detection/coverage: Host-side audit logging (auditd on Linux, Endpoint Security Framework on macOS) can detect unexpected connect() calls to sensitive sockets from the sandbox relay process, but requires custom rules.
03 · Intelligence Metadata

The supporting signals.

In-the-Wild ExploitationNo confirmed exploitation. Not listed on CISA KEV. No threat-intelligence reports of active campaigns as of 2026-09-18.
Proof-of-ConceptNo public PoC identified. No exploit code found in GitHub PoC aggregators (SecureWithUmer/CVE-2026-PoCs, pocindex) or ExploitDB. The TOCTOU technique is well-understood and trivially reproducible by a skilled attacker.
EPSS Score0.00106 — bottom quartile. Consistent with a niche product and no public weaponization.
KEV StatusNot listed. No CISA KEV entry as of 2026-09-18.
CVSS Vector (noisgate estimate)CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:N — Local attack vector (guest-to-host), high complexity (race condition), low privileges (guest code exec), changed scope (escapes sandbox boundary), high confidentiality and integrity impact.
Affected VersionsDocker Sandboxes 0.37.0 through 0.41.9 (all platforms: macOS, Linux, Windows)
Fixed VersionsDocker Sandboxes 0.42.0 (released 2026-09-07). Docker recommends upgrading to 0.43.0+ for defense-in-depth fixes.
Exposure DataDocker Sandboxes launched March 2026. No Shodan/Censys/GreyNoise footprint — the product runs locally or in CI, not as a network-exposed service. Installed base is growing but significantly smaller than Docker Engine/Desktop.
Disclosure Date2026-09-15 (public advisory). Patch released 2026-09-07 (8-day pre-disclosure window).
ResearcherJurre van Bergen of ThreatNotify
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to HIGH (7.5/10)

The single most decisive factor is sandbox-escape blast radius on developer workstations and CI runners — the affected component's core purpose is isolation of untrusted code, and this bug defeats that isolation boundary, potentially granting access to docker.sock (root-equivalent) or credential-agent sockets on the host. The verdict is held at HIGH rather than CRITICAL because the product's installed base is still narrow (launched March 2026) and no public PoC or active exploitation exists to compress the response timeline.

HIGH Vulnerability mechanism and exploitability (TOCTOU on filesystem paths is well-understood)
MEDIUM Real-world blast radius (depends on host socket inventory and sandbox configuration)
LOW Installed base size (Docker Sandboxes adoption data is not publicly reported)

Why this verdict

  • Sandbox escape is the threat model: Docker Sandboxes exist to run untrusted AI-agent code. The attacker's prerequisite — guest code execution — is the *default operating condition*, not an additional barrier. This eliminates the usual 'requires local access' friction discount.
  • TOCTOU reliability: Filesystem symlink races are historically reliable with retry loops. Academic and practical research shows >90% success rates within seconds. Attack complexity is effectively LOW despite the race window.
  • Role multiplier: Docker Sandboxes occupy two deployment roles: (a) *developer workstations* (macOS/Linux) where host sockets include docker.sock, SSH agent, credential managers — escape → host root or credential theft; (b) *CI/CD runners* where escape → supply-chain pivot via build-server access. Both are high-value roles. On developer machines (~70%+ of installs by Docker's own marketing), reaching docker.sock = full host compromise. On CI runners (~20% of installs), the chain ends in build-pipeline control. The floor is HIGH.
  • No exploitation or PoC yet: EPSS 0.00106, no KEV listing, no public exploit code. This prevents escalation to CRITICAL despite the role multiplier.
  • Narrow installed base: Product launched March 2026. Even aggressive adoption estimates put it at a fraction of Docker Desktop's ~20M developer base. Fleet-wide urgency is tempered by exposure population.

Why not higher?

CRITICAL would require either active exploitation evidence, a public weaponized PoC compressing the response window, or a much larger installed base making fleet-scale compromise plausible today. The product launched six months ago, has no confirmed exploitation, and the reachable socket inventory varies significantly by host configuration — many developer machines may not have high-value sockets exposed in paths reachable via the relay.

Why not lower?

MEDIUM would undercount the blast radius. This is a sandbox-escape bug in a product whose *entire value proposition* is isolation of untrusted code. The prerequisite (guest code execution) is not friction — it is the expected operating condition. On any host where docker.sock or credential-agent sockets are reachable, the chain ends in full host compromise or credential theft. The role multiplier on developer workstations and CI runners floors the verdict at HIGH.

05 · Compensating Control

What to do — in priority order.

  1. Upgrade to Docker Sandboxes 0.42.0+ immediately — The patch resolves the TOCTOU by using fd-pinned socket references instead of pathname-based reconnection. This is the definitive fix. Per the noisgate mitigation SLA for HIGH, deploy within 30 days — but given the simplicity of the upgrade (single binary), aim for days not weeks.
  2. Switch sandboxes to clone mode — Clone mode copies the workspace into the microVM rather than mounting it, eliminating the host-side directory traversal path entirely. This breaks the symlink-swap attack chain at step 2. Use this as an interim control if patching is delayed.
  3. Remove read-write host mounts from sandbox configurations — If clone mode is not feasible, convert all host mounts to read-only. The TOCTOU requires the guest to *write* (delete + symlink) an intermediate directory — read-only mounts prevent this. Review all --mount and workspace configuration flags.
  4. Audit host socket inventory — Enumerate sensitive AF_UNIX sockets on hosts running Docker Sandboxes (find / -type s 2>/dev/null on Linux, sudo lsof -U on macOS). Restrict filesystem permissions on high-value sockets (docker.sock, SSH agent, gpg-agent) to prevent the relay process from connecting even if the symlink race succeeds.
  5. Enable host-side audit logging for sandbox relay process — On Linux, add auditd rules for connect() syscalls from the sandbox relay binary targeting socket paths outside /workspace. On macOS, use Endpoint Security Framework or OpenBSM. This provides detection coverage while the patch rolls out.
What doesn't work
  • Network segmentation / firewall rules — This is a local filesystem race condition on Unix-domain sockets, not a network attack. Network controls have zero impact on the attack path.
  • Container image scanning (Trivy, Snyk, etc.) — The vulnerability is in the Docker Sandboxes host-side relay binary, not in any container image layer. Image scanners will not detect it.
  • AppArmor/SELinux profiles on the container — Docker Sandboxes use microVMs, not traditional Linux containers. Standard container MAC profiles do not apply to the microVM boundary or the host-side relay process.
06 · Verification

Crowdsourced verification payload.

Run this script on any host where Docker Sandboxes is installed. It checks the installed sbx binary version against the patched version. Requires no special privileges — just access to the sbx CLI. Example: bash check_cve_2026_79994.sh

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# check_cve_2026_79994.sh
# Checks whether the installed Docker Sandboxes version is vulnerable to CVE-2026-79994
# TOCTOU race in guest-to-host UDS relay (affects 0.37.0 – 0.41.9, fixed in 0.42.0)
# Exit codes: 0 = PATCHED, 1 = VULNERABLE, 2 = UNKNOWN

set -euo pipefail

VULN_FLOOR="0.37.0"
FIX_VERSION="0.42.0"

version_gte() {
  # Returns 0 if $1 >= $2 using sort -V
  [ "$(printf '%s\n%s' "$1" "$2" | sort -V | head -n1)" = "$2" ]
}

# Try to find the sbx binary
if command -v sbx &>/dev/null; then
  SBX_BIN="sbx"
elif command -v docker-sandbox &>/dev/null; then
  SBX_BIN="docker-sandbox"
elif [ -x "$HOME/.docker/cli-plugins/docker-sbx" ]; then
  SBX_BIN="$HOME/.docker/cli-plugins/docker-sbx"
else
  echo "UNKNOWN — Docker Sandboxes (sbx) binary not found on this host."
  exit 2
fi

# Extract version
RAW_VERSION=$($SBX_BIN version 2>/dev/null || $SBX_BIN --version 2>/dev/null || echo "")
VERSION=$(echo "$RAW_VERSION" | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -n1)

if [ -z "$VERSION" ]; then
  echo "UNKNOWN — Could not parse Docker Sandboxes version from: $RAW_VERSION"
  exit 2
fi

echo "Detected Docker Sandboxes version: $VERSION"
echo "Vulnerable range: >= $VULN_FLOOR and < $FIX_VERSION"

if version_gte "$VERSION" "$FIX_VERSION"; then
  echo "PATCHED — Version $VERSION is >= $FIX_VERSION. CVE-2026-79994 is fixed."
  exit 0
elif version_gte "$VERSION" "$VULN_FLOOR"; then
  echo "VULNERABLE — Version $VERSION is in the affected range ($VULN_FLOOR – pre-$FIX_VERSION)."
  echo "Action: Upgrade to Docker Sandboxes >= $FIX_VERSION immediately."
  exit 1
else
  echo "PATCHED — Version $VERSION predates the vulnerable code (< $VULN_FLOOR). Not affected."
  exit 0
fi
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning: inventory every host running Docker Sandboxes and check for versions 0.37.0–0.41.9. Upgrade to 0.42.0+ — it's a single binary update with no breaking changes. If you can't patch immediately, switch affected sandboxes to clone mode or make all host mounts read-only to kill the symlink-swap chain. Per the noisgate mitigation SLA for HIGH severity, compensating controls must be in place within 30 days (by 2026-10-18). The noisgate remediation SLA gives you 180 days (by 2027-03-17) for full patch deployment across your fleet, but given how simple this upgrade is, there's no reason to wait. If you're running Sandboxes in CI/CD pipelines, prioritize those hosts first — a sandbox escape on a build runner is a supply-chain incident. No active exploitation has been confirmed, so this is a measured rollout, not a fire drill.

Sources

  1. CybersecurityNews — Critical Docker Sandbox Vulnerabilities
  2. The Hacker News — Docker Sandboxes Flaw Lets Malicious Guest Code Access Host Files
  3. SecurityOnline — Docker Sandboxes Vulnerabilities Patched
  4. LinuxSecurity — Docker Sandbox Unix Socket Exploit CVE-2026-79994
  5. OSV / GHSA-p436-gjf2-799p — GitHub Security Advisory
  6. Docker Blog — Why MicroVMs: Architecture Behind Docker Sandboxes
  7. GBHackers — Docker Sandboxes Vulnerabilities Let Guests Escape Workspace
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.