Бесплатно Экспресс-аудит сайта:

09.07.2024

Год бездействия: почему Gogs игнорирует критические 0day-уязвимости в своём продукте

В Gogs, популярном сервисе для самоуправляемых Git-репозиториев с открытым исходным кодом, обнаружены четыре неустранённые уязвимости, три из которых являются критическими. Эти уязвимости могут позволить аутентифицированному злоумышленнику взломать уязвимые инстансы, украсть или уничтожить исходный код, а также внедрить бэкдоры.

Томас Шошефен и Пауль Герсте, исследователи из SonarSource , указали на следующие уязвимости в своём отчете:

  • CVE-2024-39930 (CVSS 9.9) — инъекция аргументов во встроенном SSH-сервере;
  • CVE-2024-39931 (CVSS 9.9) — удаление внутренних файлов;
  • CVE-2024-39932 (CVSS 9.9) — инъекция аргументов при предпросмотре изменений;
  • CVE-2024-39933 (CVSS 7.7) — инъекция аргументов при создании новых релизов.

Эксплуатация первых трёх уязвимостей позволяет выполнять произвольные команды на сервере Gogs, а четвертая уязвимость даёт возможность читать произвольные файлы, включая исходный код и конфиденциальные настройки.

Для эксплуатации всех четырёх уязвимостей злоумышленнику необходимо быть аутентифицированным в целевой системе. В случае CVE-2024-39930 также требуется, чтобы встроенный SSH-сервер был включён, и использовалась уязвимая версия бинарного файла env. Кроме того, злоумышленник также должен обладать действительным приватным SSH-ключом.

Если регистрация в Gogs включена, атакующий может просто создать новую учётную запись и зарегистрировать собственный SSH-ключ. В противном случае ему придётся взломать другую учётную запись или украсть приватный ключ SSH у действующего пользователя.

Инстансы Gogs, работающие на Windows, а также в Docker-контейнерах, неуязвимы для вышеописанных атак. Однако инстансы на Debian и Ubuntu уязвимы из-за поддержки опции «--split-string» в бинарном файле env.

По данным Shodan , около 7300 инстансов Gogs доступны в Интернете, причём почти 60% из них находятся в Китае, далее следуют США, Германия, Россия и Гонконг. Пока не ясно, сколько из этих серверов уязвимы.

Эксперты SonarSource также отметили, что уязвимость была обнаружена более года назад, однако сопровождающие Gogs до сих пор не выпустили исправления и, фактически, не поддерживали коммуникацию с исследователями после 28 апреля 2023 года, когда подтвердили получение первого отчёта.

Временная линия коммуникации из отчёта SonarSource (переведено на русский)

В связи с отсутствием обновлений пользователям рекомендуется отключить встроенный SSH-сервер, запретить регистрацию пользователей и рассмотреть возможность перехода на Gitea. Также специалисты SonarSource выпустили кастомный патч, который пользователи Gogs могут применить для своей защиты.

Таким образом, без надлежащего внимания к безопасности даже популярные инструменты для разработчиков могут стать целью атак, что ставит под угрозу программные цепочки поставок. Этот случай служит напоминанием для разработчиков и администраторов о необходимости постоянного мониторинга и применения защитных мер для предотвращения возможных киберугроз.