| Auszug | ||
|---|---|---|
| ||
Nuclos Remoting Sicherheit: CVE-2016-1000027, Java RMI, HttpInvoker, Remote Code Execution, SECURITY_IP_ALLOW_REMOTING, java-rmi.enabled. |
Sprache: Deutsch · English
Sicherheitshinweis zur Remoting-Schnittstelle – CVE-2016-1000027, Gegenmaßnahmen und die JSON-Umstellung ab 4.2023.8.
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Panel | ||||||
|---|---|---|---|---|---|---|
| ||||||
Auf dieser Seite
|
| Warnung | ||
|---|---|---|
| ||
In allen Nuclos-Versionen bis 4.2023.7 ist die Remoting-Schnittstelle (vom Rich Client genutzt) angreifbar. Ein Update auf 4.2023.8 wird dringend empfohlen. |
Die Kommunikation mit dem Rich Client lief über Java-RMI/Spring HttpInvoker über HTTP(S). Über CVE-2016-1000027 ermöglicht die Java-Deserialisierung eine Remote Code Execution: Wer Zugriff auf die Remoting-Schnittstelle hat, kann präparierte Anfragen senden und Code als Unterprozess des Servers ausführen. Betroffen sind alle URLs mit */remoting/*.
*/remoting/*-URLs).SECURITY_IP_ALLOW_REMOTING beschränken (siehe Security-Parameter).| Warnung |
|---|
Achtung! |
Durch regelmäßige Abhängigskeits-Scans in unserer Build-Pipeline wurde ein CVE angezeigt, welcher auf mögliche Lücken Hinwies:
https://nvd.nist.gov/vuln/detail/CVE-2016-1000027
Hersteller-Dokumentation der betroffenen Komponente:
In einer weiteren Analyse lässt sich die Ausnutzung auf die Java Serialisierung zurückführen, im spezifischen Fall wird eine Komponente von Spring (HttpInvoker) angreifbar für eine sogenannte Remote Code Execution.
Dies bedeutet, mit einer präparierter Anfrage deserialisiert Java/Spring das ankommende Binär-Objekt zu einer Java-Klasse welche wenn selbst verändert Mittels Reflection Java-Programmcode ausführt, der Angreifer kann auf dem entfernten Server jegliches Kommando ausführen als Unterprozess vom Serverprozess.
Möglich wird dies in Nuclos dadurch, dass die Kommunikation mit dem Rich-Client über besagte Schnittstelle (Java RMI - Remote Method Invocation) läuft welche über HTTP/HTTPS zu dem Server transportiert wird.
Jeder der Zugriff auf die Remoting Schnittstelle des Nuclos-Servers hat, kann eine solche präparierte Anfrage an den Server senden.
Da die Kommunikation in beider Richtung über die gleiche Implementation/Schnittstelle läuft, könnte auch ein kompromittierter Server an Richclients schadhaften Code verteilen.
Ziel-Url ist zum Beispiel:
<base-server-url>/<application context e.g nuclos>/remoting/ServerMetaService
...
Mit Ab dieser Version steht erstmalig eine komplett auf das JSON Format umgestellte Remoting-Schnittstelle zur Verfügungbereit. Java-RMI wird zusätzlich ist standardmäßig deaktiviert, kann aber mittels des Eintrages lässt sich aber per remoting.java-rmi.enabled=true in der server.properties wieder aktiviert werden. Achtung, reaktivieren (wird vom Installer wieder zurückgesetzt!Weitere Informationen zur Umstellung finden Sie im Ticket Jira