Description
gix-worktree-state before 0.33.0 (part of gitoxide) allows writing files outside the worktree on Windows. gix_worktree_state::checkout() follows an existing terminal symlink during non-exclusive (incremental) materialization (destination_is_initially_empty: false) when core.symlinks is true. If a symlink entry (mode 120000) is first checked out at a path P pointing outside the worktree, a subsequent incremental checkout of a regular-file entry (mode 100644) at the same path follows the existing reparse point and writes the blob content through the link, overwriting files outside the worktree.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
GitoxideLabs gitoxide
Default version status: unaffected
0 to < 0.33.0affected0.33.0unaffected
pkg:cargo/gix-worktree-stateGitoxideLabs gitoxide
Default version status: unaffected
0 to < 0.55.0affected0.55.0unaffected
pkg:cargo/gix-worktreeGitoxideLabs gitoxide
Default version status: unaffected
0 to < 0.49.0affected0.49.0unaffected
pkg:cargo/gix-featuresGitoxideLabs gitoxide
Default version status: unaffected
0 to < 0.86.0affected0.86.0unaffected
pkg:cargo/gix