Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-60004-PoC — Gitea anterior à 1.27.1 permite execução remota de código através da API diffpatch por meio da instalação de Git hooks. | Kitploit
Ferramentas/GitHubGitHub/erberkan/cve-2026-60004-poc
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebPós-ExploraçãoVirtualização para SegurançaTestes de PenetraçãoRed TeamingFerramenta de Acesso Remoto
GitHuberberkan/cve-2026-60004-poc

CVE-2026-60004-PoC

Gitea anterior à 1.27.1 permite execução remota de código através da API diffpatch por meio da instalação de Git hooks.

Ver Repositório
há 1 diaAinda não revisado
Site

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-60004: Execução Remota de Código na API Diffpatch do Gitea

[!WARNING] Este repositório destina-se exclusivamente a pesquisa de segurança autorizada e testes controlados em laboratório. Não execute a prova de conceito contra sistemas que você não possui ou para os quais não tem permissão explícita de avaliação.

Visão Geral

CVE-2026-60004 é uma vulnerabilidade crítica de execução remota de código na API diffpatch do Gitea. Um usuário autenticado com permissão para criar ou escrever em um repositório pode enviar um patch elaborado que faz com que um hook Git executável seja materializado dentro de um repositório bare temporário. Quando o hook é acionado, comandos controlados pelo atacante são executados com os privilégios da conta de serviço do Gitea.

Se o registro público estiver habilitado, um atacante não autenticado pode conseguir criar uma conta e alcançar o endpoint autenticado vulnerável.

AtributoDetalhes
IdentificadorCVE-2026-60004
AvisoGHSA-rcr6-4jqh-j84m
SeveridadeCrítica — CVSS 3.1: 9.8
FraquezaCWE-94: Controle Impróprio da Geração de Código
Versões afetadasGitea 1.17.0 até 1.27.0
Versão corrigidaGitea 1.27.1
Acesso necessárioPermissão de escrita no repositório
Contexto de execuçãoConta de sistema operacional do Gitea
Data do CISA KEV2026-08-25

Conteúdo do Repositório

ArquivoDescrição
gitea_diffpatch_rce.pyProva de conceito que usa apenas a biblioteca padrão, autentica, cria um repositório privado, envia o patch elaborado e recupera a saída do comando.
payload.patchPatch de exemplo que cria um hook executável hooks/post-index-change.
poc.pngCaptura de tela obtida durante a validação em laboratório.
README.mdNotas de pesquisa originais.

Ambiente Testado

A prova de conceito foi validada no seguinte ambiente isolado:

ComponenteConfiguração
Gitea1.27.0
Git2.47.2
ImplantaçãoContêiner Docker chamado gitea-lab
Endereço do serviço192.168.184.128:3000
Identidade observadauid=1000(git) gid=1000(git)

A exploração bem-sucedida produziu uma saída de comando semelhante a:

root@kitploit:~
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]

Saída da prova de conceito

Pré-requisitos

  • Python 3.8 ou posterior
  • Acesso de rede à instância Gitea de destino
  • Uma conta Gitea válida com permissões de criação e escrita de repositório, ou uma instância de laboratório de destino com registro público habilitado
  • Um ambiente de teste explicitamente autorizado

O script usa apenas a biblioteca padrão do Python e não requer pacotes adicionais.

Uso

root@kitploit:~
python3 gitea_diffpatch_rce.py <base_url> <username> <password> "<command>"

Exemplo para uma instância de laboratório local:

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

O script primeiro tenta o registro via web e, em seguida, autentica com as credenciais fornecidas. Isso permite que o mesmo comando funcione tanto com uma nova conta em uma instância com registro aberto quanto com uma conta existente.

Análise Técnica

A cadeia de exploração consiste em quatro estágios:

  1. Envio de patch controlado pelo atacante
    POST /api/v1/repos/{owner}/{repo}/diffpatch aplica o conteúdo de patch fornecido usando git apply --index --recount --cached --binary --ignore-whitespace --whitespace=fix -3 dentro de um clone temporário.

  2. Posicionamento do caminho do hook
    O repositório temporário é criado como um clone bare e compartilhado. Em um repositório bare, a raiz do repositório também é $GIT_DIR; consequentemente, o caminho do patch hooks/post-index-change é resolvido dentro do diretório de hooks ativo do Git.

  3. Materialização do hook executável
    O mesmo patch é enviado duas vezes. A segunda aplicação produz um conflito add/add, fazendo com que o fallback de três vias materialize o caminho em disco com modo 100755, apesar do uso de --cached. Uma atualização subsequente do índice invoca post-index-change, executando o código shell injetado como a conta de serviço do Gitea.

  4. Recuperação de saída nativa do Git
    O hook identifica o repositório de origem através de objects/info/alternates, armazena a saída do comando como um blob Git, cria uma árvore e um commit, e atualiza refs/heads/output-leak. A prova de conceito então recupera o resultado através da API de arquivos brutos do Gitea. Essa técnica não requer uma conexão de saída direta a partir do alvo.

Impacto

A exploração bem-sucedida concede execução de comandos com os privilégios da conta de serviço do Gitea. Dependendo da configuração de implantação, um atacante pode conseguir acessar:

  • app.ini e credenciais de banco de dados
  • SECRET_KEY, INTERNAL_TOKEN e segredos relacionados ao LFS
  • Repositórios montados ou legíveis pelo processo do Gitea
  • Variáveis de ambiente do processo
  • Serviços internos alcançáveis a partir do host ou contêiner do Gitea

Foi confirmado que a conta do laboratório tinha acesso de leitura a app.ini.

Indicadores de Comprometimento

Defensores devem investigar os seguintes artefatos e padrões de requisição:

  • Duas requisições idênticas ou quase idênticas para /api/v1/repos/*/*/diffpatch em rápida sucessão
  • Um branch chamado output-leak
  • Commits de autoria de poc <[email protected]>
  • Arquivos executáveis inesperados chamados hooks/post-index-change em repositórios bare ou diretórios de clone temporários
  • Atividade suspeita abaixo de caminhos como /data/gitea/tmp/local-repo/upload.git*

Esses indicadores descrevem a prova de conceito incluída e não são exaustivos; um exploit modificado pode usar caminhos, refs, identidades ou canais de saída diferentes.

Correção e Mitigação

  1. Atualize para o Gitea 1.27.1 ou posterior. Esta é a correção recomendada. A correção altera o fluxo de trabalho afetado para usar um clone temporário não bare.
  2. Restrinja a API diffpatch no proxy reverso até que a atualização seja concluída, por exemplo, negando acesso a rotas correspondentes a /api/v1/.../diffpatch. Valide a regra em relação a integrações legítimas antes da implantação.
  3. Desabilite o registro público definindo DISABLE_REGISTRATION=true se isso não for operacionalmente necessário. Isso reduz a alcançabilidade não autenticada, mas não protege contra usuários existentes com permissão de escrita em repositórios.
  4. Revise logs e refs de repositórios em busca dos indicadores acima e rotacione credenciais ou segredos acessíveis à conta do Gitea se houver suspeita de comprometimento.

Para o contêiner de laboratório usado nesta pesquisa, a remoção pode ser realizada com:

root@kitploit:~
docker rm -f gitea-lab

Uso Responsável

Este material é fornecido para ajudar defensores a reproduzir, compreender, detectar e corrigir a vulnerabilidade. Operadores devem testar apenas em ambientes isolados e seguir os requisitos de autorização e divulgação de sua organização.

Baixar ferramenta