
CVE-2026-60004 — RCE до аутентификации в Gitea через внедрение хука diffpatch
Этот репозиторий содержит инструмент доказательства концепции для CVE-2026-60004 — вектора удалённого выполнения кода (RCE) с аутентификацией или без неё, затрагивающего некоторые версии Gitea через технику внедрения хука diffpatch. Основная реализация — это одна программа на Go, которая выполняет сценарии обнаружения и эксплуатации.
Этот PoC демонстрирует техники эксплуатации, которые могут скомпрометировать удалённые системы. Он предоставляется исключительно в исследовательских, тестовых и защитных целях. Не запускайте этот инструмент против систем, которыми вы не владеете или на тестирование которых у вас нет явного разрешения. Автор и участники не несут ответственности за неправомерное использование.
Из корня репозитория выполните:
go build -o cve-2026-60004-poc cve-2026-60004-poc.go
Скомпилированный бинарный файл поддерживает несколько режимов: full-auto, semi-auto, manual и check.


./cve-2026-60004-poc --url http://target:3000 --mode check
./cve-2026-60004-poc --url http://target:3000 --mode full-auto
./cve-2026-60004-poc --url http://target:3000 --mode semi-auto --user attacker --pw 'P@ssw0rd'
./cve-2026-60004-poc --url http://target:3000 --mode manual --user attacker --pw 'P@ssw0rd' --repo myrepo
./cve-2026-60004-poc --url http://target:3000 --mode manual --user attacker --pw 'P@ssw0rd' --repo myrepo --cmd "whoami; id"
--url (required) : Базовый URL целевой Gitea (например, http://10.0.0.1:3000)--mode : full-auto | semi-auto | manual | check (по умолчанию: full-auto)--user, --pw : Учётные данные для режимов semi-auto/manual--repo : Имя репозитория (для режима manual)--branch : Имя ветки (по умолчанию: main)--cmd : Команда для выполнения на целевой системе (по умолчанию: cat /etc/passwd)check выполняет неинтрузивные проверки для обнаружения Gitea и зондирования наличия конечной точки diffpatch.full-auto пытается зарегистрировать нового пользователя (требуется открытая регистрация), создать репозиторий, доставить вредоносную полезную нагрузку diffpatch и получить вывод из внедрённого хука.semi-auto использует предоставленные учётные данные для создания репозитория и перехода к шагам эксплуатации.manual требует существующего пользователя и репозитория; он лишь пытается доставить эксплойт и (опционально) получить вывод.InsecureSkipVerify = true, чтобы максимально повысить совместимость во время тестирования; не используйте такое поведение в производственном коде./api/v1/version, /user/sign_up, /api/v1/user, /api/v1/user/repos и /api/v1/repos/:owner/:repo/diffpatch.Вклад должен ограничиваться защитными улучшениями, документацией и исправлениями, не связанными с эксплуатацией. Не отправляйте изменения, которые делают инструмент более разрушительным.
Этот репозиторий предоставляется в исследовательских и защитных целях. Явная лицензия не включена; если вам нужна лицензия, добавьте её и убедитесь, что она совместима с вашими целями использования.
Автор: Gagaltotal666 - GhostGTR666
Этот PoC был подготовлен для демонстрации уязвимости и оказания помощи защитникам в её обнаружении и устранении.
--count : Количество отправляемых запросов diffpatch (минимум 2)--simple-hook : Использовать простой хук (пропускает расширенную полезную нагрузку)--no-retrieve : Пропустить получение вывода--proxy : HTTP-прокси (например, http://127.0.0.1:8080)--verbose, -v : Подробный вывод--quiet, -q : Тихий режим; выводить только результат выполнения команды--force : Пропустить проверки валидации Gitea