Tar extraction in moby/go-archive can write outside the destination directory via link following (moby go-archive)
At a glance
- Source
- NVD
- EPSS
- EPSS 0.44 % · percentile 38 ()
- State
- PUBLISHED
- Published
- Updated
- Assigner
- Docker
- NVD status
- Awaiting Analysis
Description
The tar extraction routines in moby/go-archive (Unpack, UnpackLayer, Untar/UntarUncompressed, and the ApplyLayer helpers) do not confine filesystem operations to the destination directory. The extractor decides where each archive entry lands using lexical string checks and then performs the filesystem operation on a path that is resolved by the OS, so links introduced by the archive can be followed out of the destination directory. An attacker who controls the contents of an archive can create or overwrite files at arbitrary paths writable by the extracting process.
Weaknesses (CWE)
- CWE-59 — Improper Link Resolution Before File Access
References
- https://github.com/moby/go-archive/security/advisories/GHSA-hfg8-hc9c-6c3h
- https://docs.docker.com/desktop/release-notes/#4860
- https://github.com/docker/sbx-releases/releases/tag/v0.38.0
- https://docs.docker.com/engine/release-notes/29/#2970
- https://github.com/docker/cli/releases/tag/v29.7.0
- https://github.com/docker/compose/releases/tag/v5.4.0
- https://github.com/moby/go-archive/releases/tag/v0.3.0
- https://github.com/masasron/CopyEscape-CVE-2026-17106
Scores
| Version | Score | Vector | Scored by |
|---|---|---|---|
| CVSS 4.0 | HIGH 7.1 | CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N | Docker |
| CVSS 4.0 | HIGH 7.1 | CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X | NVD · security@docker.com (Secondary) |
Advisories
- GHSA-hfg8-hc9c-6c3h — moby/go-archive: Crafted tar archive can write outside the extraction directory
- GO-2026-6253 — moby/go-archive: Crafted tar archive can write outside the extraction directory in github.com/moby/go-archive
European references
- ENISA EUVD · EUVD-2026-61112
- GCVE · GCVE-0-2026-17106
CERT-FR advisories
- CERTFR-2026-AVI-0996 — Vulnérabilité dans Docker · cert.ssi.gouv.fr
Affected products
| Product | Versions |
|---|---|
| moby · go-archive | affected 0 < 0.3.0 |
| Docker · Docker Sandboxes | affected 0 < 0.38.0 |
| Docker · Docker Desktop | affected 0 < 4.86.0 |
| Docker · Docker Engine | affected 0 < 29.7.0 |
| Docker · Docker CLI | affected 0 < 29.7.0 |
| Docker · Docker Compose | affected 0 < 5.4.0 |
Sources
| Source | Licence |
|---|---|
| CVE List (CVEProject cvelistV5) | CVE Program Terms of Use |
| EPSS (FIRST.org) | FIRST — attribution requested |
| ENISA EUVD | ENISA — reproduction authorised, source acknowledged |
| CERT-FR (ANSSI) | Licence Ouverte / Etalab 2.0 |
| NVD (NIST) via fkie-cad/nvd-json-data-feeds | Public domain — this product uses data from the NVD API but is not endorsed or certified by the NVD |