Nicht authentifizierte Remote-Codeausführung in Ivanti EPMM durch EL-Injection in der Bean-Validierung (CVE-2025-4427 & CVE-2025-4428)

Eine schwerwiegende Sicherheitslücke wurde in Ivanti Endpoint Manager Mobile (EPMM) entdeckt, die es Angreifern ermöglicht, ohne Authentifizierung Code auf dem Server auszuführen. Das Problem liegt in der Art und Weise, wie das System Eingaben validiert, bevor geprüft wird, ob ein Benutzer autorisiert ist. Dieser Fehler ermöglicht die Kompromittierung der Anwendung durch das einfache Senden einer speziell präparierten Webanfrage.

ProduktMobileIron-MDM
Datum20.05.2025 14:04:56
Informationen
  • Fix verfügbar
  • Aktive Ausnutzung

Technische Zusammenfassung

CVE-2025-4427 und CVE-2025-4428 resultieren daraus, wie Ivanti EPMM die Validierung und Sicherheitsprüfungen in Spring MVC handhabt. Insbesondere:

  • Wenn ein Benutzer eine Anfrage an Endpunkte wie /api/v2/featureusage sendet, werden die Anfrageparameter einem Datenobjekt (DeviceFeatureUsageReportQueryRequest) zugeordnet.
  • Wenn die Annotation @Valid verwendet wird, ruft Spring benutzerdefinierte Validatoren wie den DeviceFeatureUsageReportQueryRequestValidator auf, bevor geprüft wird, ob der Benutzer authentifiziert oder autorisiert ist.
  • Innerhalb dieses Validators verwendet Ivanti buildConstraintViolationWithTemplate() mit ungefilterten Eingaben, die vom Angreifer kontrolliert werden.
  • Da der Hibernate Validator EL-Ausdrücke (z. B. ${3*333}) verarbeiten kann, werden diese sofort im Kontext des Servers ausgewertet.
  • Infolgedessen kann ein Angreifer durch das Injizieren schädlicher EL-Ausdrücke (Expression Language Injection) eine nicht authentifizierte Remote Code Execution (RCE) erreichen.
  • Ein ähnliches Problem existiert auch in ScepSubjectValidator, das während der SCEP-Zertifikatsregistrierung durch einen authentifizierten Administrator ausgelöst wird.
  • Die Sicherheitslücke wurde aufgrund eines grundlegenden Fehlers in der Validierungsreihenfolge von Spring eingeführt: Die Bean-Validierung erfolgt vor den @PreAuthorize-Zugriffskontrollen von Spring Security.

Beispiel:

Eine GET-Anfrage an:

GET /api/v2/featureusage?format=${3*333} HTTP/2

gibt Folgendes zurück:

Format '999' is invalid. Valid formats are 'json', 'csv'.

Dies bestätigt, dass EL-Ausdrücke ausgewertet werden – selbst ohne Authentifizierung.

Empfehlungen

Organisationen, die Ivanti EPMM einsetzen, sollten umgehend auf eine der gepatchten Versionen aktualisieren:

  • 11.12.0.5
  • 12.3.0.2
  • 12.4.0.2
  • 12.5.0.1

Zusätzlich:

  • Überprüfen Sie benutzerdefinierte Validatoren, um sicherzustellen, dass keine nicht vertrauenswürdigen Daten in Fehlermeldungen eingefügt werden.
  • Deaktivieren Sie die EL-Auswertung beim Rendern von Vorlagen, wo dies nicht erforderlich ist.
  • Stellen Sie sicher, dass Autorisierungsprüfungen immer vor jeglicher Verarbeitung von Benutzereingaben oder Validierungslogik stattfinden.

[Callforaction-THREAT-Footer]

Leave a Reply

Your email address will not be published. Required fields are marked *