Разработчики Forgejo выпустили экстренные патчи — 16.0.4 и 15.0.8 — закрывающие дыру, через которую злоумышленник мог запустить свой код на чужом сервере.
Платформа совместной работы над кодом Forgejo получила срочные обновления — версии 16.0.4 и 15.0.8. Поводом стала критическая брешь, которой пока не присвоили идентификатор CVE. Эксплуатация позволяет удалённому атакующему исполнять произвольный код на сервере. Владельцам инсталляций Forgejo настоятельно советуют как можно быстрее установить свежие сборки и проверить системы на предмет постороннего вмешательства.
Корень проблемы — недостаточная фильтрация при развёртывании нового репозитория из шаблона. Чтобы пользователь не мог протащить собственные команды через шаблон, платформа перед инициализацией свежего git-репозитория вырезает из него подкаталог .git/. Однако эту защиту удавалось обойти: манипулируя подстановкой переменных в файлы внутри директории .forgejo/template, злоумышленник добивался создания каталога .git/ с произвольным наполнением. Достаточно было прописать в пути что-то вроде «../../.git/hooks».
Когда git затем инициализировал репозиторий, он подхватывал настройки из этого подкаталога — а там могли оказаться операции, запускающие сторонние процессы. Так и открывалась дорога к выполнению чужого кода на сервере.
Разработчики переработали логику: теперь подкаталог .git/ удаляется не до раскрытия переменных, а прямо перед вызовом «git init». Для сравнения, в Gitea схожую уязвимость CVE-2026-25718 закрыли ещё в феврале выпуском 1.25.5.
