Новости · Безопасность файлов

Gitea 1.27.1 закрывает критическую RCE: вредоносный патч-файл превращался в исполняемый Git-хук

CISA подтвердила 26 августа 2026 года активную эксплуатацию CVE-2026-60004 (CVSS 9.8) в платформе Gitea: злоумышленник с обычным доступом на запись к репозиторию может отправить специально подготовленный diff-файл и выполнить произвольные команды от имени операционной системы. Патч вышел в версии 1.27.1; дедлайн CISA для госорганов США — 28 августа 2026.

26 августа 2026 Редакция LoadFile Чтение 6 мин
Взломанный сервер с терминалом git diff — уязвимость Gitea CVE-2026-60004

Коротко: CVE-2026-60004 в Gitea (CVSS 9.8) — уязвимость в endpoint diffpatch, позволяющая через дважды отправленный вредоносный патч-файл установить Git-хук и запустить код на сервере. Затронуты версии 1.17–1.27.0. Исправление — Gitea 1.27.1. CISA внесла уязвимость в каталог KEV; зафиксированы реальные атаки с развёртыванием майнера.

Что произошло

26 августа 2026 года Help Net Security и The Hacker News сообщили об активной эксплуатации CVE-2026-60004 — критической уязвимости в Gitea, самостоятельно размещаемой платформе управления Git-репозиториями. Уязвимость обнаружил исследователь Shai rod (NightRang3r); CISA добавила её в каталог Known Exploited Vulnerabilities (KEV), установив дедлайн для федеральных агентств США — 28 августа 2026 года.

Gitea широко используется организациями, которые хотят хранить исходный код на собственной инфраструктуре, а не в облаке. Это делает её особенно ценной целью: взлом Gitea-сервера означает доступ к репозиториям с исходниками, конфигами, секретами и CI/CD-пайплайнами. Затронуты версии от 1.17 до 1.27.0 включительно.

Как работает уязвимость

Уязвимость находится в endpoint diffpatch — механизме Gitea, обрабатывающем diff-файлы (патчи формата git diff / patch). При применении патча Gitea создаёт временный клон репозитория. В уязвимых версиях этот клон создавался как «голый» (bare) репозиторий, у которого нет рабочего дерева, а корневая директория совпадает с директорией .git.

Это означает, что файл hooks/post-index-change внутри переданного патча попадает непосредственно в директорию $GIT_DIR/hooks и становится активным Git-хуком. При повторной отправке того же патча хук срабатывает и выполняет вложенный в него код — от имени пользователя операционной системы, под которым работает процесс Gitea.

!
Открытая регистрация усиливает риск

Gitea по умолчанию разрешает открытую регистрацию. Это значит, что атаку может провести полностью анонимный пользователь: зарегистрироваться, создать репозиторий, дважды отправить вредоносный патч — всё. Если ваш Gitea доступен из интернета с включённой регистрацией, риск максимален.

В версии 1.27.1 проблема устранена: временный репозиторий теперь создаётся как обычный клон с рабочим деревом, а не bare-репозиторий. Путь, по которому файл из патча мог стать Git-хуком, исключён.

Как атака выглядела в реальности

Один из задокументированных инцидентов был описан на платформе Habr разработчиком, обнаружившим компрометацию своего самостоятельно размещённого Gitea-сервера. Последовательность атаки заняла около 11 секунд:

  1. Злоумышленник зарегистрировал аккаунт на Gitea-сервере через открытую регистрацию.
  2. Создал репозиторий и получил права на запись в него.
  3. Дважды отправил специально сконструированный патч-файл на endpoint diffpatch.
  4. Вредоносный файл hooks/post-index-change из патча попал в директорию Git-хуков временного клона и был выполнен.
  5. Хук запустил загрузчик (dropper), который очистил переменные окружения, определил архитектуру процессора, завершил конкурирующие процессы и скачал архитектурно-специфичную полезную нагрузку.
  6. На сервере была развёрнута программа, работающая как криптовалютный майнер, — загрузка CPU превысила 70%.

Также сообщается об утечке данных: скомпрометированные конфигурационные файлы Gitea содержат токены OAuth, секреты приложений и учётные данные баз данных — всё, что Gitea использует для работы.

Кого затрагивает

Под угрозой находятся все организации и частные лица, которые:

  • самостоятельно размещают Gitea версий 1.17–1.27.0 на собственном сервере;
  • открыли веб-интерфейс Gitea в интернет (особенно с включённой открытой регистрацией);
  • используют Gitea в корпоративной сети с несколькими пользователями — достаточно скомпрометированного аккаунта одного сотрудника.

Хостинговые платформы (Gitea Cloud и аналоги) патч применяют самостоятельно; самостоятельный хостинг требует ручного обновления. Для того чтобы проверить актуальный список открытых Gitea-инстансов с интернет-адресами, исследователи из runZero применяли инструменты разведки сети — по их оценке, тысячи публичных установок Gitea не были обновлены в первые дни после публикации патча.

Что делать прямо сейчас

  1. Обновите Gitea до версии 1.27.1 или новее. Это единственный надёжный способ устранить уязвимость. Скачать официальную сборку можно на gitea.com.
  2. Отключите открытую регистрацию, если она включена и не является необходимой: в Admin Panel → Site Administration → «Allow Registration» снимите галочку. Это исключает эксплуатацию анонимным пользователем.
  3. Ротируйте секреты: если сервер уже был скомпрометирован или мог быть скомпрометирован, замените токены OAuth, ключи API, пароли баз данных и секреты приложений из конфигурационных файлов Gitea.
  4. Ограничьте сетевой доступ: рассмотрите размещение Gitea за VPN или файрволом, ограничив доступ по IP, если публичный доступ не обязателен.
  5. Проверьте журналы на предмет неожиданных вызовов endpoint /api/v1/repos/.*/git/raw или нестандартной активности в разделе диффов и пулл-реквестов.
Быстрая проверка версии Gitea

В веб-интерфейсе Gitea версия отображается в подвале страницы. Через API: запрос GET /api/v1/version (без авторизации) возвращает JSON с полем version. Если значение ниже 1.27.1 — обновление необходимо немедленно.

Контекст: файлы патчей как вектор атаки

CVE-2026-60004 — очередное напоминание о том, что файлы, которые принято считать безопасными по природе, могут быть опасны при их обработке уязвимым ПО. Diff-файл (патч) — это текстовый формат, описывающий изменения в исходном коде. Сам по себе он не исполняем, но становится оружием, когда парсер на принимающей стороне содержит ошибку.

Тот же класс уязвимостей мы видели в архиваторах, обрабатывающих символические ссылки и path traversal в ZIP и TAR, и в PDF-ридерах, выполняющих встроенный JavaScript. В каждом случае вектор атаки — файл «безопасного» формата, переданный на обработку уязвимому инструменту. О том, какие расширения и форматы файлов несут риск при обработке, подробнее — в нашем разделе карта опасных расширений и общем руководстве по безопасности файлов.

Источники

Читайте также