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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
moby go-archive
Default version status: unaffected
0 to < 0.3.0affected
Docker Docker Sandboxes
Default version status: unaffected
0 to < 0.38.0affected
Docker Docker Desktop
Default version status: unaffected
0 to < 4.86.0affected
Docker Docker Engine
Default version status: unaffected
0 to < 29.7.0affected
Docker Docker CLI
Default version status: unaffected
0 to < 29.7.0affected
Docker Docker Compose
Default version status: unaffected
0 to < 5.4.0affected
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 ↗