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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/infosec-db/cve-2026-60004-gitea-validator
РазведкаСканеры уязвимостейЭксплуатацияВеб-безопасностьТестирование на Проникновение
GitHubinfosec-db/cve-2026-60004-gitea-validator

CVE-2026-60004-Gitea-Validator

🫖 Инструмент для обнаружения, связанного с контрактами, и авторизованной проверки уязвимости CVE-2026-60004 в Gitea

Репозиторий

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
11 ч 33 мин назадЕщё не проверено

🫖 CVE-2026-60004 Gitea Validator

Автономный инструмент для обнаружения, оценки и проверки, коррелируемой с договором, уязвимости удалённого выполнения кода в Git-хуке diffpatch Gitea.

Python 3.10+ License: MIT CVE

scanner.py предоставляет пентестерам, защитникам и исследователям безопасности один инструмент без внешних зависимостей для:

  • 🔎 Пассивного обнаружения Gitea через существующий индекс LeakIX
  • 🧭 Разведки публичных маршрутов и Swagger-документации по одной цели
  • 🩺 Неразрушающей оценки версии
  • 🧪 Ограниченной, аутентифицированной проверки концепции (PoC)
  • 🧾 Сбора JSON-доказательств и вывода команд, коррелируемых с договором
  • 🛡️ Контроля по одной цели, ограничений по версиям, приватных выходных файлов и обработки учётных данных с тем же источником

⚠️ Правовое и этическое предупреждение

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

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

🧠 Сводка по уязвимости

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

Forgejo и другие форки автоматически не классифицируются как уязвимые. Их реализация должна проверяться независимо.

✨ Что делает каждый режим

Активные режимы не принимают списки целей или подстановочные знаки.

📦 Требования

  • Python 3.10 или новее
  • Git, доступный в PATH
  • Сетевой доступ к явно выбранной цели Gitea
  • Действительные учётные данные Gitea или явно одобренная самостоятельная регистрация
  • Письменная ссылка на авторизацию/договор для активного тестирования
  • Необязательно: ключ API LeakIX для discover

Сканер использует только стандартную библиотеку Python. Установка pip install не требуется.

🚀 Установка

root@kitploit:~
git clone https://github.com/InfoSec-DB/CVE-2026-60004-Gitea-Validator.git
cd CVE-2026-60004-Gitea-Validator
python3 scanner.py --help

🩺 Начните с неразрушающих проверок

Проверка сообщённой версии

root@kitploit:~
python3 scanner.py verify \
  https://gitea.example \
  --contract-number ENG-2026-001 \
  --output evidence/version.json

Инвентаризация публичных маршрутов и метаданных Swagger

root@kitploit:~
python3 scanner.py recon \
  https://gitea.example \
  --contract-number ENG-2026-001 \
  --output evidence/recon.json

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

🧪 Авторизованное активное подтверждение

Существующая одобренная тестовая учётная запись

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

root@kitploit:~
GITEA_PASSWORD='replace-with-approved-test-password' \
python3 scanner.py confirm \
  https://gitea.example \
  --contract-number ENG-2026-001 \
  --username audit-user \
  --execute-poc \
  --write-client-marker \
  --output evidence/confirmation.json

Если для автоматизации не указан --yes-i-am-authorized, confirm попросит вас ввести привязанную к договору фразу подтверждения. Команда по умолчанию — id.

Одноразовая самостоятельная регистрация

Используйте это только тогда, когда создание учётной записи разрешено правилами взаимодействия:

root@kitploit:~
python3 scanner.py confirm \
  https://gitea.example \
  --contract-number ENG-2026-001 \
  --register-test-account \
  --credential-log evidence/credentials.txt \
  --execute-poc \
  --write-client-marker \
  --output evidence/confirmation.json

Пароль хранится только в приватном журнале учётных данных и не дублируется в JSON-доказательствах или панели результатов терминала.

Профиль теста одной командой

root@kitploit:~
python3 scanner.py test \
  https://gitea.example \
  --contract-number ENG-2026-001

🚨 test — это активная удобная команда. На затронутой цели с включённой регистрацией она автоматически создаёт учётную запись и приватный репозиторий, записывает маркер договора, выполняет id и сохраняет результаты в afterdark-results/. Она намеренно не имеет дополнительного интерактивного запроса, поэтому её вызов и является подтверждением авторизации.

Пользовательская команда

Для узко ограниченной, явно одобренной валидации confirm и test принимают --cmd. Предпочитайте профиль id по умолчанию, когда его достаточно.

root@kitploit:~
GITEA_PASSWORD='replace-with-approved-test-password' \
python3 scanner.py confirm \
  https://gitea.example \
  --contract-number ENG-2026-001 \
  --username audit-user \
  --execute-poc \
  --cmd 'uname -a' \
  --output evidence/confirmation.json

🌐 Пассивное обнаружение через LeakIX

root@kitploit:~
export LEAKIX_API_KEY='replace-with-your-key'
python3 scanner.py discover \
  --method app \
  --pages 3 \
  --output evidence/leakix.json

Для просмотра записей LeakIX об одном известном хосте без связи с этим хостом:

root@kitploit:~
python3 scanner.py discover \
  --method host \
  --target gitea.example \
  --pages 1 \
  --output evidence/leakix-host.json

Результаты обнаружения — это зацепки, а не авторизация на сканирование или эксплуатацию перечисленных систем.

🔬 Как работает встроенный PoC

  1. Подтверждает, что сообщённый продукт/версия проходит шлюз активного тестирования.
  2. Выполняет аутентификацию с одобренной учётной записью или создаёт одну одноразовую учётную запись по явному запросу.
  3. Создаёт приватный репозиторий с уникальным именем, инициализированный с веткой по умолчанию.
  4. Формирует патч, добавляющий исполняемый файл hooks/post-index-change.
  5. Отправляет патч дважды в конечную точку API diffpatch репозитория.
  6. Хук выполняет выбранную команду и записывает её объединённый вывод в объекты Git.
  7. Временный Git-клиент получает уникальную ссылку на вывод.
  8. Сканер записывает коррелируемые с договором доказательства, используя приватные файлы 0600, и отказывается перезаписывать существующие доказательства.

Аутентифицированные HTTP-редиректы ограничены выбранным исходным источником цели. Получение вывода Git также отключает редиректы, пока активен заголовок авторизации.

🧾 Обработка доказательств и чувствительных данных

Активные запуски могут создавать:

  • confirmation.json — временные метки, цель, имя учётной записи, оценка версии, код возврата и захваченный вывод
  • confirmation.command-output.txt — полный вывод удалённой команды
  • credentials.txt — сгенерированный пароль одноразовой учётной записи, если запрошено
  • содержимое embedded-result.txt, сохраняемое внутри JSON-доказательств

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

🧹 Контрольный список очистки

Инструмент намеренно избегает автоматического удаления, чтобы доказательства оставались доступными для проверки. После тестирования администратор цели должен:

  • Удалить сгенерированную учётную запись audit-*, если она была создана
  • Удалить сгенерированный приватный репозиторий afterdark-*
  • Удалить необязательный маркер /tmp/gitea-validation-*/client.txt
  • Безопасно заархивировать или удалить локальные учётные данные и доказательства
  • Обновить Gitea до 1.27.1 или новее
  • Воспроизвести только минимальную безопасную валидацию, необходимую для подтверждения устранения уязвимости

Успешное выполнение PoC демонстрирует выполнение команд от имени сервисной учётной записи Gitea. Само по себе оно не доказывает root-доступ, закрепление, боковое перемещение или компрометацию базового хоста.

🛡️ Контроль безопасности

  • Только точный URL одной цели; без поддержки подстановочных знаков или файлов целей
  • Номер договора включён в User-Agent и необязательный маркер
  • Активный шлюз версий блокирует известные исправленные версии
  • Команда по умолчанию ограничена id или whoami
  • Явный переключатель --execute-poc для confirm
  • Самостоятельная регистрация — по желанию и пропускается, если отключена
  • Принудительные редиректы с тем же источником для аутентифицированных HTTP-запросов
  • Git-редиректы отключены во время получения вывода с учётными данными
  • Учётные данные передаются дочернему процессу в памяти/окружении, затем удаляются из захваченного вывода
  • Приватные файлы доказательств с эксклюзивным созданием; существующие файлы никогда не перезаписываются
  • Тайм-аут дочернего процесса 180 секунд и ограниченный захват вывода

✅ Запуск тестов

Включённые тесты являются локальными и не выполняют сетевых запросов:

root@kitploit:~
python3 -m unittest discover -s tests -v

🤝 Вклад

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

По вопросам безопасности самого инструмента следуйте SECURITY.md.

📚 Ссылки и благодарности

  • Официальная консультация Gitea: GHSA-rcr6-4jqh-j84m
  • Релизы Gitea
  • Репортёр CVE, указанный в вышестоящей консультации: NightRang3r
  • Валидатор поддерживается AfterDark Security Research Group

Создано для внимательных исследователей, которые верят, что хороший PoC должен быть воспроизводимым, атрибутируемым и скучным в очистке. 🛡️

Скачать инструмент
ПунктДетали
ПродуктGitea
Затронутые версии>= 1.17.0, < 1.27.1
Исправленная версия1.27.1
ВоздействиеУдалённое выполнение команд от имени пользователя ОС Gitea
Требуемый доступПраво записи в репозиторий; открытая регистрация может позволить атакующему создать его
КонсультацияGHSA-rcr6-4jqh-j84m
РежимСетевое поведениеИзменяет состояние цели?Назначение
discoverЗапрашивает только LeakIXНетИщет в существующем стороннем индексе; не связывается с обнаруженными хостами
reconОдна конкретная цельНетИнвентаризирует фиксированные публичные маршруты и опубликованный целевой Swagger-документ
verifyОдна конкретная цельНетЧитает /api/v1/version и классифицирует сообщённую версию Gitea
testОдна конкретная цельДаУдобный поток: проверка версии, проверка регистрации, одноразовая учётная запись, маркер, id и доказательства
confirmОдна конкретная цельДаКонтролируемое подтверждение с одобренной учётной записью или явной одноразовой регистрацией