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-Gitea-Validator — 🫖 Ferramenta de descoberta correlacionada a contratos e validação autorizada para Gitea CVE-2026-60004 | Kitploit
Ferramentas/GitHubGitHub/infosec-db/cve-2026-60004-gitea-validator
ReconhecimentoScanners de VulnerabilidadesExploraçãoSegurança WebTestes de Penetração
GitHubinfosec-db/cve-2026-60004-gitea-validator

CVE-2026-60004-Gitea-Validator

🫖 Ferramenta de descoberta correlacionada a contratos e validação autorizada para Gitea CVE-2026-60004

Ver Repositório

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
há 11h 30mAinda não revisado

🫖 Validador CVE-2026-60004 para Gitea

Uma ferramenta autônoma de descoberta, avaliação e validação correlacionada a contrato para a vulnerabilidade de execução remota de código no Git-hook diffpatch do Gitea.

Python 3.10+ License: MIT CVE

O scanner.py oferece a testadores de penetração, defensores e pesquisadores de segurança uma única ferramenta sem dependências para:

  • 🔎 Descoberta passiva de Gitea por meio do índice existente do LeakIX
  • 🧭 Reconhecimento de rotas públicas e Swagger em alvo único
  • 🩺 Avaliação de versão não destrutiva
  • 🧪 Validação de prova de conceito autenticada e limitada
  • 🧾 Evidências JSON correlacionadas a contrato e captura de saída de comandos
  • 🛡️ Controles de alvo único, limites de versão, arquivos de saída privados e tratamento de credenciais de mesma origem

⚠️ Aviso legal e ético

Este projeto é fornecido apenas para testes de segurança autorizados, validação defensiva, pesquisa e educação. Execute os modos ativos somente contra sistemas que você possui ou para os quais tenha permissão escrita explícita de avaliação. Você é responsável por cumprir todas as leis, contratos, regras de engajamento e requisitos de divulgação aplicáveis.

Os autores e colaboradores não são responsáveis por uso indevido, danos, interrupção de serviço, perda de dados ou consequências legais. O PoC ativo executa um comando como o usuário do sistema operacional do Gitea e altera o estado do servidor ao criar um repositório privado. Trate-o como qualquer outra ferramenta de validação de RCE.

🧠 Resumo da vulnerabilidade

O CVE-2026-60004 afeta o fluxo de trabalho diffpatch de repositórios do Gitea. Um usuário com permissão de escrita no repositório pode enviar conteúdo de patch controlado que instala um Git hook em um clone temporário bare compartilhado. A aplicação do patch manipulado duas vezes aciona uma colisão add/add e faz com que o hook seja executado como a conta de serviço do Gitea.

Forgejo e outros forks não são automaticamente classificados como vulneráveis. Sua implementação deve ser revisada de forma independente.

✨ O que cada modo faz

Os modos ativos não aceitam listas de alvos ou curingas.

📦 Requisitos

  • Python 3.10 ou mais recente
  • Git disponível no PATH
  • Acesso de rede ao alvo Gitea explicitamente selecionado
  • Credenciais válidas do Gitea, ou autorregistro explicitamente aprovado
  • Uma autorização por escrito/referência de contrato para testes ativos
  • Opcional: uma chave de API do LeakIX para discover

O scanner usa apenas a biblioteca padrão do Python. Nenhum pip install é necessário.

🚀 Instalação

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

🩺 Comece com verificações não destrutivas

Verifique a versão informada

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

Inventarie rotas públicas e metadados Swagger

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

A detecção de versão é um sinal de avaliação, não uma prova de explorabilidade. Patches retroportados, builds personalizados, proxies reversos e forks podem exigir revisão manual.

🧪 Confirmação ativa autorizada

Conta de teste aprovada existente

Mantenha a senha fora do histórico do shell colocando-a no ambiente para o comando:

root@kitploit:~
GITEA_PASSWORD='substitua-pela-senha-de-teste-aprovada' \
python3 scanner.py confirm \
  https://gitea.example \
  --contract-number ENG-2026-001 \
  --username audit-user \
  --execute-poc \
  --write-client-marker \
  --output evidence/confirmation.json

A menos que --yes-i-am-authorized seja fornecido para automação, confirm pede que você digite a frase de confirmação vinculada ao contrato. O comando remoto padrão é id.

Autorregistro descartável

Use isso apenas quando a criação de contas for permitida pelas regras de engajamento:

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

A senha é armazenada apenas no log de credenciais privado, não duplicada nas evidências JSON ou no painel de resultados do terminal.

Perfil de teste em um único comando

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

🚨 test é um comando de conveniência ativo. Em um alvo afetado com registro habilitado, ele cria automaticamente uma conta e um repositório privado, escreve o marcador do contrato, executa id e salva os resultados em afterdark-results/. Ele intencionalmente não possui prompt interativo adicional, portanto invocá-lo é o reconhecimento da autorização.

Comando personalizado

Para validação de escopo restrito e explicitamente aprovada, confirm e test aceitam --cmd. Prefira o perfil padrão id sempre que for suficiente.

root@kitploit:~
GITEA_PASSWORD='substitua-pela-senha-de-teste-aprovada' \
python3 scanner.py confirm \
  https://gitea.example \
  --contract-number ENG-2026-001 \
  --username audit-user \
  --execute-poc \
  --cmd 'uname -a' \
  --output evidence/confirmation.json

🌐 Descoberta passiva no LeakIX

root@kitploit:~
export LEAKIX_API_KEY='substitua-pela-sua-chave'
python3 scanner.py discover \
  --method app \
  --pages 3 \
  --output evidence/leakix.json

Para inspecionar registros do LeakIX de um host conhecido sem contatar esse host:

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

Os resultados da descoberta são pistas, não autorização para escanear ou explorar os sistemas listados.

🔬 Como o PoC embutido funciona

  1. Confirma que o produto/versão informado passa no limite de teste ativo.
  2. Autentica com uma conta aprovada ou cria uma conta descartável quando explicitamente solicitado.
  3. Cria um repositório privado com nome único inicializado com uma branch padrão.
  4. Constrói um patch que adiciona um arquivo executável hooks/post-index-change.
  5. Envia o patch duas vezes ao endpoint da API diffpatch do repositório.
  6. O hook executa o comando selecionado e grava sua saída combinada nos objetos Git.
  7. Um cliente Git temporário busca a referência de saída única.
  8. O scanner escreve evidências correlacionadas a contrato usando arquivos privados 0600 e se recusa a sobrescrever evidências existentes.

Redirecionamentos HTTP autenticados são restritos à origem do alvo selecionado. A recuperação da saída Git também desativa redirecionamentos enquanto o cabeçalho de autorização está ativo.

🧾 Evidências e tratamento de dados sensíveis

Execuções ativas podem produzir:

  • confirmation.json — carimbos de data/hora, alvo, nome da conta, avaliação de versão, código de retorno e saída capturada
  • confirmation.command-output.txt — saída completa do comando remoto
  • credentials.txt — senha gerada da conta descartável, quando solicitada
  • Conteúdo de embedded-result.txt preservado dentro das evidências JSON

Esses arquivos podem conter dados sensíveis de engajamento. Eles são ignorados pelo .gitignore incluído, criados com modo 0600 e devem ser criptografados em repouso de acordo com sua política de tratamento de evidências.

🧹 Lista de verificação de limpeza

A ferramenta evita deliberadamente a exclusão automática para que as evidências permaneçam disponíveis para revisão. Após o teste, um administrador do alvo deve:

  • Excluir a conta audit-* gerada, se uma foi criada
  • Excluir o repositório privado afterdark-* gerado
  • Remover o marcador opcional /tmp/gitea-validation-*/client.txt
  • Arquivar ou excluir com segurança credenciais e evidências locais
  • Atualizar o Gitea para 1.27.1 ou posterior
  • Reproduzir apenas a validação mínima segura necessária para confirmar a remediação

A execução bem-sucedida do PoC demonstra execução de comandos como a conta de serviço do Gitea. Isso não prova por si só acesso root, persistência, movimento lateral ou comprometimento do host subjacente.

🛡️ Controles de segurança

  • URL de alvo único exato apenas; sem suporte a curingas ou arquivos de alvos
  • Número do contrato incluído no User-Agent e marcador opcional
  • Limite de versão ativo bloqueia versões corrigidas conhecidas
  • Comando padrão limitado a id ou whoami
  • Interruptor explícito --execute-poc para confirm
  • Autorregistro é opcional e ignorado quando desabilitado
  • Aplicação de redirecionamentos de mesma origem para solicitações HTTP autenticadas
  • Redirecionamentos Git desabilitados durante a recuperação de saída com credenciais
  • Credenciais passadas ao processo filho em memória/ambiente e depois removidas da saída capturada
  • Arquivos de evidência privados com criação exclusiva; arquivos existentes nunca são sobrescritos
  • Tempo limite de 180 segundos para o processo filho e captura de saída limitada

✅ Execute os testes

Os testes incluídos são locais e não fazem solicitações de rede:

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

🤝 Contribuição

Melhorias responsáveis são bem-vindas — especialmente correções de compatibilidade, redução de falsos positivos, melhorias na qualidade das evidências e fluxos de limpeza mais seguros. Por favor, não envie detalhes de alvos reais, credenciais, evidências privadas ou payloads armamentizados.

Para um problema de segurança nesta própria ferramenta, siga SECURITY.md.

📚 Referências e créditos

  • Aviso oficial do Gitea: GHSA-rcr6-4jqh-j84m
  • Lançamentos do Gitea
  • Repórter do CVE creditado pelo aviso upstream: NightRang3r
  • Validador mantido pelo AfterDark Security Research Group

Feito para pesquisadores cuidadosos que acreditam que um bom PoC deve ser reproduzível, atribuível e entediante de limpar. 🛡️

Baixar ferramenta
ItemDetalhe
ProdutoGitea
Versões afetadas>= 1.17.0, < 1.27.1
Versão corrigida1.27.1
ImpactoExecução remota de comandos como o usuário do SO do Gitea
Acesso necessárioAcesso de escrita ao repositório; registro aberto pode permitir que um atacante o crie
AvisoGHSA-rcr6-4jqh-j84m
ModoComportamento de redeAltera o estado do alvo?Finalidade
discoverConsulta apenas o LeakIXNãoBusca em um índice de terceiros existente; não contata os hosts descobertos
reconUm alvo exatoNãoInventaria rotas públicas fixas e o documento Swagger publicado pelo alvo
verifyUm alvo exatoNãoLê /api/v1/version e classifica a versão do Gitea informada
testUm alvo exatoSimFluxo de conveniência: verificação de versão, checagem de registro, conta descartável, marcador, id e evidências
confirmUm alvo exatoSimConfirmação controlada com conta aprovada ou registro descartável explícito