Уязвимость в платформе совместной разработки Gogs, позволяющая выполнить код на сервере

В платформе совместной разработки Gogs выявлена уязвимость, которой присвоен критический уровень опасности (10 из 10). Уязвимость позволяет непривилегированному пользователю Gogs выполнить произвольные команды на сервере с правами пользователя, указанного через параметр RUN_USER в конфигурации Gogs. Проблема является следствием неполного исправления уязвимости CVE-2024-39931, раскрытой в декабре. Уязвимость устранена в обновлении Gogs 0.13.3.

Проблема вызвана возможностью манипуляции файлами в каталоге .git из web-редактора репозиториев. При исправлении уязвимости в декабре была добавлена проверка загрузки файлов в каталог .git, но осталась не полностью блокирована возможность удаления файлов. В частности, при удалении проверялось совпадение файлового пути с каталогом .git, но не выполнялись проверки символических ссылок. Таким образом, для обхода добавленной проверки достаточно было создать символический каталог, указывающий на .git и в дальнейшем использовать его для удаления содержимого, вместо прямого обращения к каталогу .git.

Release. Ссылка here.