Тысячи самостоятельно размещённых Git-серверов уязвимы для атак.




Исследователи из Rapid7 обнаружили опасную уязвимость в популярном самостоятельном Git-сервисе Gogs. Злоумышленники могут полностью скомпрометировать сервер Gogs с помощью специально созданного pull-request. Согласно сообщению в блоге исследователей(открывается в новом окне), уязвимость до сих пор не исправлена. Администраторам необходимо самостоятельно принимать меры для защиты своих систем.

Идентификатора CVE для данной уязвимости пока не существует. Однако, по данным Rapid7, уязвимость имеет показатель CVSS 9,4, что соответствует критическому уровню опасности. Для эксплуатации уязвимости не требуются права администратора или взаимодействие с пользователем.

Злоумышленнику на целевом сервере Gogs нужна лишь собственная учетная запись пользователя. По умолчанию регистрация пользователей в Gogs открыта, поэтому получить соответствующую учетную запись легко, если только ответственный администратор явно не отключил открытую регистрацию.

Возможна полная компрометация

Кроме того, по данным Rapid7, злоумышленнику требуется доступ на запись к любому репозиторию с активным слиянием через rebase (rebase-merging). Для этого он может либо использовать существующий репозиторий с соответствующей конфигурацией, либо создать свой собственный и активировать rebase-merging в настройках. По умолчанию создание собственных репозиториев в Gogs также активно.

При выполнении указанных условий, по словам исследователей, злоумышленник может "создать pull-request с вредоносным именем ветки, которое во время слияния с опцией 'Rebase before merging' вставляет флаг '--exec' в git rebase".

Результатом является возможность выполнения вредоносного кода, что позволяет полностью скомпрометировать целевой сервер. По данным Rapid7, после этого злоумышленник может, среди прочего, читать и изменять все размещенные там репозитории, перехватывать сохраненные учетные данные и атаковать другие системы, доступные через сеть сервера Gogs.

Что могут сделать администраторы

Исследователи Rapid7 утверждают, что сообщили об уязвимости разработчикам Gogs еще 17 марта и впоследствии неоднократно запрашивали информацию об исправлении и раскрытии информации. Однако патча, вероятно, до сих пор нет. Текущая версия 0.14.2, выпущенная 19 февраля(открывается в новом окне), считается уязвимой.

В качестве превентивной меры администраторам рекомендуется по возможности ограничить на своих серверах Gogs открытую регистрацию пользователей, а также создание пользователями собственных репозиториев. Для этого в файле app.ini необходимо установить значение "DISABLE_REGISTRATION" в true, а "MAX_CREATION_LIMIT" в 0.

Gogs — популярная альтернатива таким сервисам, как Github и Gitlab, которую можно размещать на собственных серверах. Проект на Github(открывается в новом окне) насчитывает около 5 100 форков и 47 600 звезд. Согласно сканированию Shadowserver Foundation(открывается в новом окне), в настоящее время во всем мире напрямую через интернет доступно около 2 400 серверов Gogs, из них почти 100 — из Германии. Однако во внутренних сетях, вероятно, существует еще больше серверов Gogs, доступных из интернета только через VPN-соединение.