Forgejo закрывает критическую уязвимость с удалённым выполнением кода
Проект Forgejo, разрабатывающий одноимённый программный форж (открытый аналог платформ для совместной разработки), сообщил о выпуске версий 16.0.4 и 15.0.8. Обновления устраняют две уязвимости, одна из которых оценена как критическая и допускает удалённое выполнение произвольного кода (RCE).
Как работает атака
Проблема кроется в механизме создания нового репозитория на основе шаблонного. При этой операции Forgejo клонирует репозиторий-шаблон, удаляет из него папку .git, выполняет подстановку переменных в файлах, перечисленных в .forgejo/template, а затем инициализирует новый git-репозиторий.
Окно для атаки открывается именно на шаге подстановки переменных. Злоумышленник может составить шаблон так, чтобы в ходе этой обработки в каталоге появилась новая папка .git. При последующей инициализации git подхватывает и включает эту папку как свою — со всеми вытекающими последствиями.
В результате вредоносный шаблонный репозиторий позволяет читать произвольные данные на хосте Forgejo и запускать на нём произвольные процессы, то есть проводить полноценную атаку с удалённым выполнением кода.
Что исправлено
Лечение оказалось прямолинейным: теперь после завершения подстановки переменных Forgejo удаляет любую имеющуюся папку .git из каталога — и только затем инициализирует новый репозиторий. Тем самым подложенная злоумышленником директория не успевает попасть под управление git.
Проект настоятельно рекомендует администраторам обновиться до актуальных версий как можно скорее.
Источник: LWN.net
Комментарии
Войдите, чтобы комментировать.