gix-worktree-state до версии 0.33.0 (часть gitoxyd) позволяет записывать файлы за пределами рабочего дерева в Windows. gix_worktree_state::checkout() следует за существующей символической ссылкой терминала во время неисключительной (инкрементной) материализации (destination_is_initially_empty: false), когда core.symlinks имеет значение true. Если запись символической ссылки (режим 120000) сначала извлекается по пути P, указывающему за пределы рабочего дерева, последующая инкрементальная проверка записи обычного файла (режим 100644) по тому же пути следует за существующей точкой повторной обработки и записывает содержимое большого двоичного объекта через ссылку, перезаписывая файлы за пределами рабочего дерева.
Показать оригинальное описание (EN)
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.
Характеристики атаки
Последствия
Строка CVSS v4.0
Тип уязвимости (CWE)
Уязвимые продукты 4
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
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
|