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.
# 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.

