Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-60004-PoC — Gitea до 1.27.1 допускает удалённое выполнение кода через API diffpatch посредством установки Git-хуков. | Kitploit
Инструменты/GitHubGitHub/erberkan/cve-2026-60004-poc
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийПост-эксплуатацияВиртуализация для безопасностиТестирование на ПроникновениеRed TeamingИнструмент Удаленного Доступа
GitHuberberkan/cve-2026-60004-poc

CVE-2026-60004-PoC

Gitea до 1.27.1 допускает удалённое выполнение кода через API diffpatch посредством установки Git-хуков.

2721 дней назадЕщё не проверено
Репозиторий
Сайт

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-60004: Удалённое выполнение кода через API diffpatch в Gitea

[!WARNING] Этот репозиторий предназначен исключительно для авторизованных исследований в области безопасности и контролируемого лабораторного тестирования. Не запускайте proof of concept против систем, которыми вы не владеете или на проверку которых у вас нет явного разрешения.

Обзор

CVE-2026-60004 — критическая уязвимость удалённого выполнения кода в API diffpatch Gitea. Аутентифицированный пользователь с правом создания репозитория или записи в него может отправить специально сформированный патч, который приводит к материализации исполняемого Git-хука внутри временного bare-репозитория. При срабатывании хука контролируемые злоумышленником команды выполняются с привилегиями служебной учётной записи Gitea.

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

АтрибутДетали
ИдентификаторCVE-2026-60004
РекомендацияGHSA-rcr6-4jqh-j84m
КритичностьКритическая — CVSS 3.1: 9.8
СлабостьCWE-94: Некорректный контроль генерации кода
Уязвимые версииGitea 1.17.0 — 1.27.0
Исправленная версияGitea 1.27.1
Требуемый доступПраво записи в репозиторий
Контекст выполненияУчётная запись операционной системы Gitea
Дата CISA KEV2026-08-25

Содержимое репозитория

ФайлОписание
gitea_diffpatch_rce.pyProof of concept, использующий только стандартную библиотеку: выполняет аутентификацию, создаёт приватный репозиторий, отправляет сформированный патч и получает вывод команды.
payload.patchПример патча, создающего исполняемый хук hooks/post-index-change.
poc.pngСкриншот, сделанный во время лабораторной проверки.
README.mdИсходные заметки исследования.

Тестовая среда

Proof of concept был проверен в следующей изолированной среде:

КомпонентКонфигурация
Gitea1.27.0
Git2.47.2
РазвёртываниеDocker-контейнер с именем gitea-lab
Адрес сервиса192.168.184.128:3000
Наблюдаемая идентичностьuid=1000(git) gid=1000(git)

Успешная эксплуатация давала вывод команды, подобный следующему:

uid=1000(git) gid=1000(git) groups=1000(git)
Linux 6.12.20-amd64 x86_64
/data/gitea/tmp/local-repo/upload.git630501597
[exit-status=0]

Вывод proof-of-concept

Предварительные требования

  • Python 3.8 или более поздний
  • Сетевой доступ к целевому экземпляру Gitea
  • Действительная учётная запись Gitea с правами создания репозитория и записи, либо целевой лабораторный экземпляр с включённой публичной регистрацией
  • Явно авторизованная тестовая среда

Скрипт использует только стандартную библиотеку Python и не требует дополнительных пакетов.

Использование

python3 gitea_diffpatch_rce.py <base_url> <username> <password> "<command>"

Пример для локального лабораторного экземпляра:

python3 gitea_diffpatch_rce.py \
  http://127.0.0.1:3000 \
  pocuser \
  'P@ssw0rd!' \
  'id; uname -a'

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

Технический анализ

Цепочка эксплуатации состоит из четырёх этапов:

  1. Отправка контролируемого злоумышленником патча
    POST /api/v1/repos/{owner}/{repo}/diffpatch применяет переданное содержимое патча с помощью git apply --index --recount --cached --binary --ignore-whitespace --whitespace=fix -3 внутри временного клона.

  2. Размещение пути хука
    Временный репозиторий создаётся как bare-клон с общим доступом. В bare-репозитории корень репозитория также является $GIT_DIR; следовательно, путь патча hooks/post-index-change разрешается внутри активного каталога хуков Git.

  3. Материализация исполняемого хука
    Один и тот же патч отправляется дважды. Второе применение вызывает конфликт add/add, из-за чего трёхсторонний откат материализует путь на диске с режимом 100755, несмотря на использование --cached. Последующее обновление индекса вызывает post-index-change, выполняя внедрённый shell-код от имени служебной учётной записи Gitea.

  4. Получение вывода средствами Git
    Хук определяет исходный репозиторий через objects/info/alternates, сохраняет вывод команды как Git-блоб, создаёт дерево и коммит и обновляет refs/heads/output-leak. Затем proof of concept получает результат через API raw-файлов Gitea. Этот метод не требует прямого исходящего соединения с целевой системы.

Воздействие

Успешная эксплуатация даёт выполнение команд с привилегиями служебной учётной записи Gitea. В зависимости от конфигурации развёртывания злоумышленник может получить доступ к:

  • app.ini и учётным данным базы данных
  • SECRET_KEY, INTERNAL_TOKEN и секретам, связанным с LFS
  • Репозиториям, смонтированным или доступным для чтения процессу Gitea
  • Переменным окружения процесса
  • Внутренним сервисам, доступным с хоста или из контейнера Gitea

Было подтверждено, что лабораторная учётная запись имеет доступ на чтение к app.ini.

Индикаторы компрометации

Защитникам следует исследовать следующие артефакты и шаблоны запросов:

  • Два идентичных или почти идентичных запроса к /api/v1/repos/*/*/diffpatch с малым интервалом
  • Ветка с именем output-leak
  • Коммиты, автором которых указан poc <[email protected]>
  • Неожиданные исполняемые файлы с именем hooks/post-index-change в bare-репозиториях или каталогах временных клонов
  • Подозрительная активность по путям вида /data/gitea/tmp/local-repo/upload.git*

Эти индикаторы описывают включённый proof of concept и не являются исчерпывающими; модифицированный эксплойт может использовать другие пути, ссылки, идентичности или каналы вывода.

Исправление и меры защиты

  1. Обновитесь до Gitea 1.27.1 или более поздней версии. Это рекомендуемое исправление. Исправление изменяет затронутый рабочий процесс так, чтобы использовался не-bare временный клон.
  2. Ограничьте API diffpatch на обратном прокси до завершения обновления, например, запретив доступ к соответствующим маршрутам /api/v1/.../diffpatch. Перед развёртыванием проверьте правило на легитимных интеграциях.
  3. Отключите публичную регистрацию, установив DISABLE_REGISTRATION=true, если она не требуется операционно. Это снижает доступность для неаутентифицированных пользователей, но не защищает от существующих пользователей с правом записи в репозиторий.
  4. Проверьте журналы и ссылки репозиториев на наличие указанных выше индикаторов и смените учётные данные или секреты, доступные учётной записи Gitea, если есть подозрение на компрометацию.

Для лабораторного контейнера, использованного в этом исследовании, удаление можно выполнить командой:

docker rm -f gitea-lab

Ответственное использование

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

Скачать инструмент