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.
Attack Parameters
Impact Assessment
CVSS Vector v4.0
Weakness Type (CWE)
Vulnerable Products 4
| Configuration | From (including) | Up to (excluding) |
|---|---|---|
|
Gitoxidelabs Gitoxide
cpe:2.3:a:gitoxidelabs:gitoxide:*:*:*:*:*:*:*:*
|
— |
0.33.0
|
|
Gitoxidelabs Gitoxide
cpe:2.3:a:gitoxidelabs:gitoxide:*:*:*:*:*:*:*:*
|
— |
0.55.0
|
|
Gitoxidelabs Gitoxide
cpe:2.3:a:gitoxidelabs:gitoxide:*:*:*:*:*:*:*:*
|
— |
0.49.0
|
|
Gitoxidelabs Gitoxide
cpe:2.3:a:gitoxidelabs:gitoxide:*:*:*:*:*:*:*:*
|
— |
0.86.0
|