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

Опубликован корректирующий релиз платформы совместной разработки Gogs 0.13.2, в котором устранено 6 уязвимостей. 5 уязвимостям присвоен критический уровень опасности (10 из 10). Исправленные проблемы позволяют непривилегированному пользователю Gogs выполнить код на сервере, изменить данные в репозиториях других пользователей или получить SSH-доступ к серверу. Судя по предварительной проверке, уязвимости не затрагивают платформы Forgejo и Gitea, продолжающие развитие форка Gogs, созданного в 2016 году.

Выявленные проблемы:

  • CVE-2024-39931отсутствие ограничения загрузки файлов в каталог .git в web-редакторе репозиториев. Уязвимость может использоваться для организации выполнения любых команд на сервере с правами пользователя, указанного через параметр RUN_USER в конфигурации Gogs. Уязвимость позволяет просмотреть и изменить код других пользователей сервиса.
  • CVE-2024-39932отсутствие проверки значений, передаваемых в командной строке при запуске на сервере команды “git diff”. Уязвимость даёт возможность записать свои данные в произвольный файл на сервере, насколько позволяют права доступа, под которыми выполняются процессы Gogs. Уязвимость может использоваться для получения прав администратора Gogs и внесения изменения в код других пользователей сервиса.
  • CVE-2024-39930отсутствие должной проверки параметров, используемых в числе аргументов системной утилиты “env”, запускаемой встроенным SSH-сервером для выставления переменных окружения. Непривилегированный пользователь платформы Gogs, имеющий как минимум один SSH-ключ, может добиться выполнения своего кода на сервере с правами встроенного SSH-сервера Gogs и получить полный доступ к коду других пользователей сервиса.
  • CVE-2024-55947отсутствие проверки файловых путей в web-редакторе репозитория, позволяет использовать последовательности “/../” для выхода за пределы базового каталога Git. Непривилегированный локальный пользователь Gogs может перезаписать любые файлы на сервере, насколько это позволяют привилегии пользователя, под которым запускается обработчик загрузки файлов в Gogs (RUN_USER). Среди прочего, атакующий может изменить файлы конфигурации и получить SSH-доступ к серверу.
  • CVE-2024-54148возможность редактирования символической ссылки через интерфейс изменения имени файла в web-редакторе репозитория. Уязвимость позволяет перенаправить присутствующие в репозитории символические ссылки на любой файл в системе и внести в него изменения. Для подстановки символической ссылки необходимо наличие прав на совершение коммита в какой-либо репозиторий проекта, обслуживаемого на развёрнутом сервисе Gogs. В результате атаки можно добиться организации SSH-входа на сервер.
  • CVE-2024-39933отсутствие проверки наличия символов “-” в начале имён тегов, позволяет подставить свою опцию в команду “git diff” и просмотреть содержимое любого файла на сервере, доступного пользователю под которым запускается Gogs. Например, атакующий может просмотреть файлы конфигурации с ключами доступа, TLS-сертификаты и файлы из репозиториев других пользователей.
Release. Ссылка here.