Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-14891

CVE-2026-14891: HashiCorp Nomad Path Traversal Vulnerability

CVE-2026-14891 is a path traversal sandbox escape flaw in HashiCorp Nomad's Docker task driver that allows unauthorized host file access. This article covers the technical details, affected versions, and mitigation steps.

Published:

CVE-2026-14891 Overview

HashiCorp Nomad and Nomad Enterprise contain a sandbox escape vulnerability in the Docker task driver. A job submitter can bind-mount a host path into a container even when volume bind mounts are administratively disabled. This bypass allows the container workload to read and write arbitrary files on the underlying host, breaking the isolation boundary between Nomad tasks and the host operating system. The issue is tracked under HashiCorp Security Advisory HCSEC-2026-21 and is classified under [CWE-59] (Improper Link Resolution Before File Access). Fixed releases are Nomad Community Edition 2.0.4 and Nomad Enterprise 2.0.4, 1.11.8, and 1.10.14.

Critical Impact

Authenticated job submitters can escape the Docker task sandbox and read or write host files, enabling privilege escalation and lateral movement across the Nomad cluster.

Affected Products

  • HashiCorp Nomad Community Edition versions prior to 2.0.4
  • HashiCorp Nomad Enterprise versions prior to 2.0.4, 1.11.8, and 1.10.14
  • Nomad clusters using the Docker task driver with volume bind mounts disabled

Discovery Timeline

  • 2026-07-08 - CVE-2026-14891 published to NVD
  • 2026-07-09 - Last updated in NVD database

Technical Details for CVE-2026-14891

Vulnerability Analysis

The Nomad Docker task driver enforces an administrative control that allows operators to disable volume bind mounts through the docker.volumes.enabled configuration option. This control exists to prevent job submitters from mounting arbitrary host paths into their containers. The vulnerability allows a submitter to bypass this restriction and still bind-mount host directories into a task container.

Once a host path is mounted into the container, the workload executing inside the task can read sensitive host files such as credentials, SSH keys, Nomad tokens, and Docker socket endpoints. Writable mounts extend the impact to arbitrary file modification, including replacement of binaries or systemd units on the host.

Root Cause

The root cause is improper validation of mount specifications supplied in job files against the effective bind-mount policy. The Docker task driver failed to consistently reject host-path mounts when the volumes feature was disabled, permitting the container runtime to attach host filesystem locations to the task. The issue is categorized as improper link resolution before file access [CWE-59].

Attack Vector

Exploitation requires an authenticated principal with permission to submit jobs to the Nomad cluster. The attacker crafts a job specification that references a host path through the Docker task driver mount configuration. When Nomad schedules the task, the Docker engine attaches the host path to the container despite the administrative restriction. From within the running task, the attacker interacts with the mounted path to read or write host files. Refer to the HashiCorp Security Advisory HCSEC-2026-21 for vendor-provided technical detail.

// No verified proof-of-concept code is publicly available at time of writing.
// See HashiCorp Security Advisory HCSEC-2026-21 for technical detail.

Detection Methods for CVE-2026-14891

Indicators of Compromise

  • Job specifications submitted to Nomad that declare Docker mounts or volumes referencing host paths such as /, /etc, /root, /var/run/docker.sock, or Nomad data directories.
  • Docker container inspect output showing bind mounts sourced from host filesystem locations on clusters where docker.volumes.enabled is set to false.
  • Unexpected file access or modification events on Nomad client hosts originating from container processes.

Detection Strategies

  • Audit Nomad job submissions through the /v1/jobs API and inspect the Mounts and Volumes fields of Docker task groups for host-path references.
  • Correlate docker inspect container mount data against the effective docker.volumes.enabled client configuration to identify policy bypass.
  • Monitor Nomad audit logs for job submitters who repeatedly submit tasks containing mount stanzas after operator restrictions are in place.

Monitoring Recommendations

  • Forward Nomad server audit logs and Docker daemon logs to a centralized analytics platform and alert on host-path bind mounts on affected client versions.
  • Enable filesystem integrity monitoring on Nomad client hosts for sensitive paths including /etc, /root/.ssh, and the Nomad data directory.
  • Track process lineage from dockerd and containerd-shim for child processes that touch host paths outside expected container roots.

How to Mitigate CVE-2026-14891

Immediate Actions Required

  • Upgrade Nomad Community Edition clients to 2.0.4 and Nomad Enterprise clients to 2.0.4, 1.11.8, or 1.10.14 depending on the deployed branch.
  • Restrict job submission ACLs so only trusted operators can submit Docker tasks until all clients are patched.
  • Rotate any credentials, tokens, or keys stored on Nomad client hosts that could have been exposed through the Docker task driver.

Patch Information

HashiCorp fixed the sandbox escape in Nomad Community Edition 2.0.4 and Nomad Enterprise 2.0.4, 1.11.8, and 1.10.14. Operators should upgrade Nomad client agents running the Docker task driver first, since the vulnerable code path executes on the client. See the HashiCorp Security Advisory HCSEC-2026-21 for full version guidance.

Workarounds

  • Tighten Nomad ACL policies to prevent untrusted namespaces or users from submitting Docker task groups until patches are deployed.
  • Run Nomad Docker tasks under a rootless Docker configuration or with user namespace remapping to reduce host impact of a successful mount escape.
  • Isolate Nomad clients that must accept untrusted jobs onto dedicated hosts with minimal sensitive data and network reach.
bash
# Verify installed Nomad version on each client
nomad version

# Confirm the Docker driver bind-mount restriction is set
grep -R "docker.volumes.enabled" /etc/nomad.d/

# After upgrade, restart the Nomad client agent
sudo systemctl restart nomad

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

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.