Новый баг нулевого дня в Gogs позволяет обычному пользователю превратиться в удалённого админа сервера — и этим уже вовсю пользуются злоумышленники.

Злоумышленники эксплуатируют новую уязвимость нулевого дня в Gogs — популярном self-hosted Git-сервисе, — причём исправления от разработчиков пока нет. По данным Wiz, в ходе текущей кампании уже скомпрометировано более 700 инстансов, а атакующий код всё ещё активно используется.
Специалисты утверждают, что наткнулись на проблему случайно: в июле они разбирали заражённую машину и заметили странные попытки эксплуатации Gogs. В процессе анализа стало ясно, что злоумышленник использует ранее неизвестный баг для взлома инстансов. О находке сообщили мейнтейнерам Gogs, которые сейчас работают над патчем, однако атаки продолжаются.
Уязвимость получила идентификатор CVE-2025-8110. Под удар попадают серверы Gogs версии 0.13.3 и ниже, если они доступны из интернета и при этом включена открытая регистрация новых пользователей — а это значение используется по умолчанию. Фактически речь идёт об обходе предыдущего патча для уязвимости CVE-2024-55947, позволявшей аутентифицированному пользователю перезаписывать файлы за пределами репозитория и тем самым добиваться удалённого выполнения кода. Первую проблему обнаружил исследователь Manasseh Zhou, но, как выяснилось, защиту реализовали не до конца.
Главная недоработка, по словам Wiz, в том, что при исправлении прошлой уязвимости не учли символические ссылки. Gogs написан на Go и позволяет разворачивать собственные Git-репозитории на своём сервере или в облаке, вместо использования GitHub или другого провайдера. Как сам Git, так и Gogs поддерживают символические ссылки (symlink) — по сути, «ярлыки» на другой файл или каталог, причём ссылка может указывать и на объект вне репозитория. При этом API Gogs даёт возможность менять файлы в обход обычного Git-протокола.
Именно комбинация этих механизмов и привела к новой дыре. По оценке Wiz, эксплуатация сводится к нескольким простым шагам, доступным любому пользователю, который может создавать репозитории — а такая возможность включена по умолчанию. Сначала атакующий создаёт обычный Git-репозиторий и коммитит в него символическую ссылку, указывающую на «чувствительный» файл за пределами репозитория. Затем через API PutContents он записывает данные в этот symlink: система следует по ссылке и перезаписывает целевой файл вне репозитория. Если таким образом изменить файл .git/config (в частности, параметр sshCommand), можно заставить систему выполнять произвольные команды при работе с репозиторием — то есть добиться удалённого выполнения кода на сервере.
Всего в интернете обнаружено около 1400 открытых инстансов Gogs. Wiz утверждает, что более 700 из них уже были заражены в рамках этой кампании. У всех скомпрометированных серверов наблюдается одинаковый паттерн: 8-символьное случайное имя владельца и репозитория, созданное 10 июля, и полезная нагрузка, использующая фреймворк удалённого управления Supershell.
Кто именно стоит за атаками, пока неясно. Исследователи прямой атрибуции не дают, но отмечают, что Supershell ранее замечали в кампаниях, связанных с азиатскими группировками. В частности, компания Mandiant в прошлом году описывала, как китайские шпионские группы эксплуатировали критическую уязвимость в оборудовании F5 с помощью Supershell и затем продавали доступ к взломанным сетям — среди жертв были оборонные организации США, госструктуры Великобритании и сотни других компаний.
В текущей серии атак цели злоумышленников пока остаются туманными. По словам Wiz, в тех средах, где исследователи видели заражение, вредонос быстро удаляли, поэтому зафиксировать дальнейшие действия атакующих не удалось. О других скомпрометированных серверах им известно лишь то, что они факт заражения подтверждают по индикаторам.
До появления исправления Wiz рекомендует администраторам Gogs сразу же предпринять меры защиты. В первую очередь стоит отключить открытую регистрацию, если она не является критически важной, а также ограничить доступ к self-hosted Git-сервисам, спрятав их за VPN или другим средством удалённого доступа.
Кроме того, операторам инстансов Gogs советуют внимательно мониторить появление новых репозиториев со случайными 8-символьными именами и отслеживать нетипичное использование API PutContents. Исследователи опубликовали подробный перечень индикаторов компрометации, по которым администраторы могут проверить свои системы на наличие следов этой кампании.