Краткий обзор уязвимости с подтвержденной эксплуатацией (включена в каталог CISA KEV): что происходит, что затронуто и что делать — со стороны защитника, без шагов воспроизведения.
- CVE
- CVE-2026-60004
- Серьезность
- Критическая (CVSS 9,8, v3.1; оценка, указанная в NVD, приписывается органу, присваивающему номера CVE)
- Класс
- Инъекция кода (CWE-94)
- Последствия
- Устанавливается вредоносный Git-хук → команды выполняются от имени пользователя ОС Gitea
- Затронуто
- Gitea 1.17 – 1.27.0 по данным бюллетеня производителя. Исправлено в 1.27.1
- Эксплуатация
- Включена в CISA KEV (добавлена 25 августа 2026, срок — 28 августа). Использование в программах-вымогателях отмечено как «Unknown»
- Вероятность
- EPSS 0,868 (по нашей ленте на 2026-09-05) — верхний уровень
Не воспринимайте «требуемые привилегии» как успокоение
Прочтение A (описание CISA)
«злоумышленник с доступом на запись в репозиторий» — звучит как условие
Прочтение B (вектор CVSS)
PR:N — привилегии не требуются
↓ бюллетень производителя объясняет оба
При включенной открытой регистрации
регистрация → создание репозитория → выдача себе доступа на запись, нужного для атаки
Успокаивать себя фразой «но для этого нужна привилегия X» — распространенная ошибка в оценке уязвимости. Вопрос не в том, кто обладает этой привилегией, а в том, можно ли получить ее извне. Открытая регистрация, регистрация без приглашения, права, выдаваемые по умолчанию, — если у привилегии есть путь получения, это не настоящее условие.
Это то же самое, что пункт ② в статье типичные ошибки — это ошибки в допущениях. И проверяйте путь регистрации через HTTP, а не по конфигурационному файлу (Аутентификация и авторизация).
В чем состоит уязвимость
- Путь
- Эндпоинт
diffpatchнеправильно обрабатывает применение патча во временных общих клонах - Результат
- Может быть установлен вредоносный Git-хук (
hooks/post-index-change) - Триггер
- Хук выполняется от имени пользователя ОС Gitea, когда Git записывает индекс
- Доступно оттуда
- Секреты приложения, учетные данные базы данных, токены OAuth, подключенные репозитории
- Предусловия
- По заявлению производителя, эксплуатация требует Git 2.32+, включенного маршрута
diffpatchи доступной для записи и выполнения временной файловой системы
Установленный Git-хук остается после обновления, поэтому обновление — не конец работы
Эта уязвимость заканчивается тем, что на сервере остается исполняемый объект. Обновление закрывает путь, по которому он устанавливается, но не удаляет ничего из уже установленного.
Git-хук задуман как легитимная точка удаленного выполнения, поэтому после установки он не выглядит подозрительно. Отличить законное обслуживание от бэкдора можно только по тому, кто его создал, с чьего разрешения и попал ли он в журнал. После устранения уязвимости проверьте, не оставил ли злоумышленник что-либо. Не пропускайте этот шаг.
Что делать
Обновитесь до 1.27.1 или новее (основное действие)
В бюллетене производителя затронутый диапазон указан как 1.17 – 1.27.0, исправление — 1.27.1. Начните с этого. Никто не обновит самостоятельно размещенный экземпляр за вас. Сначала проверьте запущенную версию, как описано в playbook по устранению CVE.
Проверьте настройку регистрации по-настоящему
Как сказано выше, включенная открытая регистрация фактически снимает условие о привилегиях. Не читайте настройку — откройте страницу регистрации без входа в систему и посмотрите, что произойдет. Для внутреннего экземпляра отключите регистрацию и, кроме того, ограничьте доступ на сетевом уровне, а не полагайтесь только на аутентификацию.
Ищите хуки и файлы, которые вы не узнаете
После обновления проверьте скрипты в каталогах хуков репозиториев, которые вы туда не помещали, неожиданные исполняемые файлы и незнакомый исходящий трафик от процесса Gitea. Вопрос не в том, «обновились ли мы», а в том, «осталось ли что-нибудь после атаки».
Если компрометация правдоподобна, считайте доступный набор скомпрометированным
Производитель перечисляет доступными секреты приложения, учетные данные базы данных и токены OAuth. Если проверка не дает ответа, помните: «мы не знаем» — это не то же самое, что «ничего не произошло» — смените их. Работа с ключами описана в статье что опасно в .env и API-ключах.
Пересмотрите сам выбор (без спешки)
Самостоятельное размещение означает обязанность самостоятельно устанавливать обновления. Компромиссы описаны в статье self-hosted Git против GitHub: что безопаснее. Это не призыв к миграции — это повод решить, исходя из того, можете ли вы действительно регулярно применять обновления.
Мнение этого сайта: CVSS и KEV измеряют разное, поэтому читайте оба
Этот случай стал наглядным примером того, о чем мы писали в статье сортировка CVE с CVSS, EPSS и KEV. CVSS показывает, насколько уязвимость серьезна технически, запись CISA — как ее используют на практике, а EPSS оценивает вероятность эксплуатации — это три разных измерения.
Здесь вектор CVSS PR:N и формулировка CISA «требуется доступ на запись» выглядели противоречиво. Если читать только одно из них, можно было бы решить, что «нужна привилегия, значит, можно подождать». Расхождение редко означает ошибку в данных; это сигнал, что упущено какое-то допущение. В данном случае ответ был в бюллетене производителя (открытая регистрация).
Источники (первичные)
- Бюллетень безопасности Gitea GHSA-rcr6-4jqh-j84m — github.com (затронуто 1.17–1.27.0 / исправлено в 1.27.1 / условие о привилегиях и его связь с открытой регистрацией / что доступно / предусловия)
- NIST NVD, «CVE-2026-60004» — nvd.nist.gov (CVSS v3.1 9.8, вектор, CWE-94; статус Analyzed)
- CISA Known Exploited Vulnerabilities Catalog — cisa.gov (добавлена 25 августа 2026, срок — 28 августа, использование в программах-вымогателях «Unknown»)
- Gitea, «Release of 1.27.1» — blog.gitea.com
Все проверено 5 сентября 2026 года. Шаги воспроизведения и ссылки на код доказательства концепции здесь не публикуются.
Читайте далее
- Компромисс: self-hosted Git против GitHub: что безопаснее
- Процесс: playbook по устранению CVE / чтение CVSS, EPSS и KEV
- Глоссарий: что такое бэкдор (как думать о том, что могло остаться)