Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.
Auszug
hiddentrue

Nuclos Remoting Sicherheit: CVE-2016-1000027, Java RMI, HttpInvoker, Remote Code Execution, SECURITY_IP_ALLOW_REMOTING, java-rmi.enabled.

globe with meridians Sprache: Deutsch · English

light bulb Remoting

Sicherheitshinweis zur Remoting-Schnittstelle – CVE-2016-1000027, Gegenmaßnahmen und die JSON-Umstellung ab 4.2023.8.

Status
colourGreen
titleKonzept
Status
colourBlue
titleAdministrator
Status
colourGreen
titleStand: Jul 2026
Status
colourGrey
titlegilt fuer Nuclos 4.2026.x

Panel
bgColor#F4F5F7

Auf dieser Seite

Inhalt
maxLevel2
minLevel2
Warnung
titleSicherheitshinweis

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.

Ursache

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/*.

Maßnahmen für Versionen ≤ 4.2023.7

  • Remoting-Schnittstelle im Proxy/Webserver blocken oder nur für vertrauenswürdige IP-Bereiche freigeben (alle */remoting/*-URLs).
  • Ab 4.2022.14: IP-Bereiche über den Parameter SECURITY_IP_ALLOW_REMOTING beschränken (siehe Security-Parameter).
Warnung

Achtung! 
In allen Nuclos Versionen bis 4.2023.7 ist die Remoting Schnittstelle, welche vom Rich-Client verwendet wird, angreifbar. 
Ursache und Maßnahmen werden nachfolgende erläutert.

Auslöser / Ursache

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:

https://docs.spring.io/spring-framework/docs/current/reference/html/integration.html#remoting-httpinvoker 

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

Maßnahmen für Versionen <= 4.2023.7

...

Version 4.2023.8

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 JiraserverNuclos Issue TrackingserverId7d748b8d-d12e-3624-b22b-ebdfde2a9938keyNUCLOS-9738).

Verwandte Seiten

gear Security-Parameter


IP-Filter.

Öffnen →

gear Betrieb von Nuclos hinter einem ReverseProxy


Proxy.

Öffnen →