Comparing v0.3.2...v0.3.3 · moby/go-archive · GitHub
Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: moby/go-archive
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.3.2
Choose a base ref
...
head repository: moby/go-archive
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.3.3
Choose a head ref
  • 14 commits
  • 13 files changed
  • 4 contributors

Commits on Aug 3, 2026

  1. archive: resolve absolute hardlink targets within extraction root

    The CVE-2026-17106 hardening rejects hardlink entries whose target is an
    absolute path. Some image builders (e.g. kaniko) write hardlink targets
    as absolute paths, so layers of such images fail to extract with
    "invalid hardlink target" since v0.3.0 (Docker 29.7.0).
    
    Resolve absolute hardlink targets relative to the extraction root with
    chroot-like semantics, matching how absolute symlink targets are handled
    since 4f6cd58 and how pre-v0.3.0 extraction behaved. The root is stripped
    from the original linkname rather than the cleaned one, so targets like
    "/../victim" are not collapsed against "/" but keep failing the
    filepath.IsLocal check, and the resolved target then passes through
    resolveArchivePath confined to the os.Root extraction root.
    
    Signed-off-by: Yannik Sembritzki <yannik@sembritzki.org>
    Yannik committed Aug 3, 2026
    Configuration menu
    Copy the full SHA
    5cd0e30 View commit details
    Browse the repository at this point in the history

Commits on Aug 4, 2026

  1. Merge pull request #100 from Yannik/fix-absolute-hardlink-targets

    archive: resolve absolute hardlink targets within extraction root (fixes #99)
    thaJeztah authored Aug 4, 2026
    Configuration menu
    Copy the full SHA
    c4f28d2 View commit details
    Browse the repository at this point in the history
  2. archive: add test for chmod fallback on nodev mounts (skipped)

    Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
    thaJeztah committed Aug 4, 2026
    Configuration menu
    Copy the full SHA
    b9a9304 View commit details
    Browse the repository at this point in the history
  3. Merge pull request #102 from thaJeztah/chmod_fallback_test

    archive: add test for chmod fallback on nodev mounts (skipped)
    thaJeztah authored Aug 4, 2026
    Configuration menu
    Copy the full SHA
    f357902 View commit details
    Browse the repository at this point in the history
  4. archive: test chmod fallback without procfs in chroot

    Add a regression test that runs the chmod fallback after switching into a
    temporary root without procfs mounted.
    
    This reproduces the environment used by chrootarchive, where resolving an
    O_PATH descriptor through /proc/self/fd is unavailable.
    
    Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
    thaJeztah committed Aug 4, 2026
    Configuration menu
    Copy the full SHA
    3daca2a View commit details
    Browse the repository at this point in the history
  5. Merge pull request #105 from thaJeztah/test_chrooted_chmod_fallback

    archive: test chmod fallback without procfs in chroot
    vvoland authored Aug 4, 2026
    Configuration menu
    Copy the full SHA
    9af1c40 View commit details
    Browse the repository at this point in the history

Commits on Aug 5, 2026

  1. archive: test chmod fallback without read permission

    skipping on Linux, which is currently broken.
    
    Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
    thaJeztah committed Aug 5, 2026
    Configuration menu
    Copy the full SHA
    4ffc915 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #106 from thaJeztah/fallback_no_read

    archive: test chmod fallback without read permission
    vvoland authored Aug 5, 2026
    Configuration menu
    Copy the full SHA
    f37d413 View commit details
    Browse the repository at this point in the history
  3. archive: fix chmod fallback for device nodes on nodev mounts

    Commit [f43ca4d][1] introduced an O_RDONLY-based chmod fallback for systems where
    fchmodat with AT_SYMLINK_NOFOLLOW is unsupported. Opening a device node this
    way fails with EACCES when the filesystem is mounted with nodev.
    
    Use O_PATH to reference the entry without opening the underlying device, then
    apply the mode through /proc/self/fd. Keep the existing fallback on non-Linux
    Unix platforms.
    
    [1]: f43ca4d
    
    Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
    thaJeztah committed Aug 5, 2026
    Configuration menu
    Copy the full SHA
    89653ed View commit details
    Browse the repository at this point in the history
  4. archive: preserve procfs access during chroot extraction

    Open /proc/self/fd before switching root and pass the descriptor to the
    archive extraction internals. This allows the chmod fallback to resolve
    pinned O_PATH descriptors when procfs is not mounted inside the chroot.
    
    Keep the descriptor owned by chrootarchive and expose it through internal
    archive options for the duration of the extraction.
    
    Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
    thaJeztah committed Aug 5, 2026
    Configuration menu
    Copy the full SHA
    2d863f5 View commit details
    Browse the repository at this point in the history
  5. archive: keep procfs file alive during fchmodat

    Keep ProcSelfFD reachable until fchmodat completes. Without an explicit
    liveness reference, the os.File may become eligible for finalization after
    Fd returns, allowing its descriptor to be closed while the syscall is in
    progress.
    
    Co-authored-by: Paweł Gronowski <pawel.gronowski@docker.com>
    Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
    thaJeztah and vvoland committed Aug 5, 2026
    Configuration menu
    Copy the full SHA
    e738eed View commit details
    Browse the repository at this point in the history
  6. Merge pull request #103 from thaJeztah/fix_chmod_fallback

    archive: fix chmod fallback for device nodes on nodev mounts
    thaJeztah authored Aug 5, 2026
    Configuration menu
    Copy the full SHA
    1e8dfbc View commit details
    Browse the repository at this point in the history
  7. archive: set close-on-exec for chmod fallback descriptors

    Open temporary descriptors with O_CLOEXEC to prevent inheritance by
    concurrently started child processes.
    
    Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
    thaJeztah committed Aug 5, 2026
    Configuration menu
    Copy the full SHA
    98ff1da View commit details
    Browse the repository at this point in the history
  8. Merge pull request #104 from thaJeztah/use_O_CLOEXEC

    archive: set close-on-exec for chmod fallback descriptors
    vvoland authored Aug 5, 2026
    Configuration menu
    Copy the full SHA
    ae9e219 View commit details
    Browse the repository at this point in the history
Loading