Commit 4eed0ca
authored
chore(deps): update module github.com/moby/go-archive to v0.3.0 [security] (#650)
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[github.com/moby/go-archive](https://redirect.github.com/moby/go-archive)
| `v0.2.0` → `v0.3.0` |

|

|
---
### moby/go-archive: Crafted tar archive can write outside the
extraction directory
[CVE-2026-17106](https://nvd.nist.gov/vuln/detail/CVE-2026-17106) /
[GHSA-hfg8-hc9c-6c3h](https://redirect.github.com/advisories/GHSA-hfg8-hc9c-6c3h)
<details>
<summary>More information</summary>
#### Details
##### Summary
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. A crafted archive can create or overwrite files **outside**
the intended destination.
##### Details
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 a links introduced by the archive can be
followed out of the destination directory.
##### Impact
An attacker who controls the contents of archive can create or overwrite
files at arbitrary paths writable by the extracting process.
##### Workarounds
Only extract trusted archives.
#### Severity
- CVSS Score: 7.1 / 10 (High)
- Vector String:
`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`
#### References
-
[https://github.com/moby/go-archive/security/advisories/GHSA-hfg8-hc9c-6c3h](https://redirect.github.com/moby/go-archive/security/advisories/GHSA-hfg8-hc9c-6c3h)
-
[https://github.com/moby/moby/issues/52948](https://redirect.github.com/moby/moby/issues/52948)
-
[https://docs.docker.com/desktop/release-notes/#​4860](https://docs.docker.com/desktop/release-notes/#​4860)
-
[https://github.com/bikini/exploitarium/tree/main/docker-cp-copyout-destination-escape](https://redirect.github.com/bikini/exploitarium/tree/main/docker-cp-copyout-destination-escape)
-
[https://github.com/docker/cli/releases/tag/v29.7.0](https://redirect.github.com/docker/cli/releases/tag/v29.7.0)
-
[https://github.com/moby/moby/releases/tag/docker-v29.7.0](https://redirect.github.com/moby/moby/releases/tag/docker-v29.7.0)
-
[https://www.imperva.com/blog/copyescape-taking-over-docker-hosts-with-docker-cp](https://www.imperva.com/blog/copyescape-taking-over-docker-hosts-with-docker-cp)
-
[https://github.com/advisories/GHSA-hfg8-hc9c-6c3h](https://redirect.github.com/advisories/GHSA-hfg8-hc9c-6c3h)
This data is provided by the [GitHub Advisory
Database](https://redirect.github.com/advisories/GHSA-hfg8-hc9c-6c3h)
([CC-BY
4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).
</details>
---
### Release Notes
<details>
<summary>moby/go-archive (github.com/moby/go-archive)</summary>
###
[`v0.3.0`](https://redirect.github.com/moby/go-archive/releases/tag/v0.3.0)
[Compare
Source](https://redirect.github.com/moby/go-archive/compare/v0.2.1...v0.3.0)
#### Security
This release fixes **CVE-2026-17106** /
**[GHSA-hfg8-hc9c-6c3h](https://redirect.github.com/moby/go-archive/security/advisories/GHSA-hfg8-hc9c-6c3h)**,
where a crafted tar archive could use links to cause extraction
operations to create or overwrite files outside the intended destination
directory.
The issue affected `Unpack`, `UnpackLayer`, `Untar`,
`UntarUncompressed`, and the `ApplyLayer` helpers. Users should upgrade
and avoid extracting untrusted archives with earlier versions.
#### What's Changed
- archive: harden tar extraction against path traversal
[#​45](https://redirect.github.com/moby/go-archive/pull/45)
- archive: do not follow reparse points in chtimes
[#​90](https://redirect.github.com/moby/go-archive/pull/90)
- archive: fix creation time updates on Windows
[#​79](https://redirect.github.com/moby/go-archive/pull/79)
- archive: minor cleanups and godoc touch-up
[#​87](https://redirect.github.com/moby/go-archive/pull/87)
- archive: RebaseArchiveEntries: fix archive path rebasing
[#​43](https://redirect.github.com/moby/go-archive/pull/43)
#### Test and CI changes
- ci: enable dependabot for actions
[#​81](https://redirect.github.com/moby/go-archive/pull/81)
- archive: make breakoutErr unwrap its cause
[#​91](https://redirect.github.com/moby/go-archive/pull/91)
- archive: use filepath for filesystem paths in tests
[#​80](https://redirect.github.com/moby/go-archive/pull/80)
- archive: use filepath for filesystem paths in tests
[#​80](https://redirect.github.com/moby/go-archive/pull/80)
**Full Changelog**:
<moby/go-archive@v0.2.1...v0.3.0>
###
[`v0.2.1`](https://redirect.github.com/moby/go-archive/releases/tag/v0.2.1)
[Compare
Source](https://redirect.github.com/moby/go-archive/compare/v0.2.0...v0.2.1)
#### What's Changed
- reject out-of-range device numbers in layer
[#​36](https://redirect.github.com/moby/go-archive/pull/36)
- createImpliedDirectories: fix directory detection and path handling
[#​44](https://redirect.github.com/moby/go-archive/pull/44)
- createImpliedDirectories: honor NoLchown for implied directories
[#​70](https://redirect.github.com/moby/go-archive/pull/70)
- createTarFile: use switch for timestamp updates
[#​67](https://redirect.github.com/moby/go-archive/pull/67)
- drop redundant ExcludePatterns initialization
[#​62](https://redirect.github.com/moby/go-archive/pull/62)
- ExportChanges: use POSIX / Unix conventions for Tar operations
[#​41](https://redirect.github.com/moby/go-archive/pull/41)
- getInodeFromStat: return error on failure
[#​50](https://redirect.github.com/moby/go-archive/pull/50)
- overlayWhiteoutConverter.ConvertRead: avoid redundant chown
[#​55](https://redirect.github.com/moby/go-archive/pull/55)
- overlayWhiteoutConverter.ConvertWrite: explicitly use POSIX / Unix
[#​38](https://redirect.github.com/moby/go-archive/pull/38)
- overlayWhiteoutConverter.ConvertWrite: simplify directory check
[#​34](https://redirect.github.com/moby/go-archive/pull/34)
- overlayWhiteoutConverter: fixes and cleanups
[#​52](https://redirect.github.com/moby/go-archive/pull/52)
- RebaseArchiveEntries: use POSIX / Unix paths
[#​42](https://redirect.github.com/moby/go-archive/pull/42)
- tarAppender.addTarFile: normalize archivePath to POSIX
[#​40](https://redirect.github.com/moby/go-archive/pull/40)
- tarAppender.addTarFile: return error before writing header
[#​51](https://redirect.github.com/moby/go-archive/pull/51)
- TarOptions: document IncludeFiles, ExcludePatterns
[#​61](https://redirect.github.com/moby/go-archive/pull/61)
- Unpack: prevent nil-pointer if nil-options are passed
[#​66](https://redirect.github.com/moby/go-archive/pull/66)
- remove some intermediate vars
[#​53](https://redirect.github.com/moby/go-archive/pull/53)
- rename some vars to prevent shadowing "path" import
[#​35](https://redirect.github.com/moby/go-archive/pull/35)
- rename vars to prevent shadowing and for clarity
[#​39](https://redirect.github.com/moby/go-archive/pull/39)
- fix typos in comments
[#​59](https://redirect.github.com/moby/go-archive/pull/59)
- modernize code
[#​30](https://redirect.github.com/moby/go-archive/pull/30)
##### Test and CI changes
- ci: don't fail fast
[#​74](https://redirect.github.com/moby/go-archive/pull/74)
- ci: update golangci-lint to v2.12 for compatibility with go1.26
[#​46](https://redirect.github.com/moby/go-archive/pull/46)
- ci: pin actions by sha
[#​22](https://redirect.github.com/moby/go-archive/pull/22)
- ci: use go.mod for "minimum" Go version, and use custom name
[#​29](https://redirect.github.com/moby/go-archive/pull/29)
- golangci-lint: enable gosec linter
[#​47](https://redirect.github.com/moby/go-archive/pull/47)
- fix some linting issues and use t.TempDir() in more places
[#​31](https://redirect.github.com/moby/go-archive/pull/31)
- add test to verify symlinks targets are preserved (skipped)
[#​48](https://redirect.github.com/moby/go-archive/pull/48)
- archive: add regression tests for tar path-traversal containment
[#​68](https://redirect.github.com/moby/go-archive/pull/68)
- archive: Add test for implied directories through symlinks
[#​76](https://redirect.github.com/moby/go-archive/pull/76)
- archive: fix breakout error type assertions in tests
[#​69](https://redirect.github.com/moby/go-archive/pull/69)
- archive: Test extracted file modes with process umask
[#​65](https://redirect.github.com/moby/go-archive/pull/65)
- chrootarchive: fix "non-root" skips on Windows
[#​71](https://redirect.github.com/moby/go-archive/pull/71)
- Reduce shelling out in tests
[#​64](https://redirect.github.com/moby/go-archive/pull/64)
- test: use current user for archive ownership in breakout tests
[#​72](https://redirect.github.com/moby/go-archive/pull/72)
- make toUnixPath more generic, and long-path aware
[#​58](https://redirect.github.com/moby/go-archive/pull/58)
- testBreakout: pre-create implied victim directory in breakout test
[#​73](https://redirect.github.com/moby/go-archive/pull/73)
- TestImpliedDirectoryPermissions: test with umask
[#​57](https://redirect.github.com/moby/go-archive/pull/57)
##### Dependency updates
- build: bump minimum Go version to 1.24
[#​27](https://redirect.github.com/moby/go-archive/pull/27)
- build: bump minimum Go version to 1.25
[#​28](https://redirect.github.com/moby/go-archive/pull/28)
- update github.com/moby/sys/sequential v0.7.0
[#​75](https://redirect.github.com/moby/go-archive/pull/75)
- update github.com/klauspost/compress v1.18.7
[#​78](https://redirect.github.com/moby/go-archive/pull/78)
- update moby/patternmatcher v0.6.1, klauspost/compress v1.18.3,
sirupsen/logrus v1.9.4
[#​23](https://redirect.github.com/moby/go-archive/pull/23)
- update moby/sys dependencies
[#​77](https://redirect.github.com/moby/go-archive/pull/77)
**Full Changelog**:
<moby/go-archive@v0.2.0...v0.2.1>
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/netresearch/ldap-manager).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4zMy4yIiwidXBkYXRlZEluVmVyIjoiNDQuMzMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsic2VjdXJpdHkiXX0=-->2 files changed
Lines changed: 9 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
153 | 153 | | |
154 | 154 | | |
155 | 155 | | |
156 | | - | |
| 156 | + | |
157 | 157 | | |
158 | 158 | | |
159 | 159 | | |
| |||
179 | 179 | | |
180 | 180 | | |
181 | 181 | | |
182 | | - | |
| 182 | + | |
183 | 183 | | |
184 | 184 | | |
185 | 185 | | |
186 | 186 | | |
187 | | - | |
| 187 | + | |
188 | 188 | | |
189 | 189 | | |
190 | 190 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
340 | 340 | | |
341 | 341 | | |
342 | 342 | | |
| 343 | + | |
| 344 | + | |
343 | 345 | | |
344 | 346 | | |
345 | 347 | | |
| |||
398 | 400 | | |
399 | 401 | | |
400 | 402 | | |
| 403 | + | |
| 404 | + | |
401 | 405 | | |
402 | 406 | | |
403 | 407 | | |
| |||
414 | 418 | | |
415 | 419 | | |
416 | 420 | | |
| 421 | + | |
| 422 | + | |
417 | 423 | | |
418 | 424 | | |
419 | 425 | | |
| |||
0 commit comments