skip to Main Content

it.sec Research Team findet unbekannte Schwachstellen in Ibexa Enterprise CMS Plattformen

Im Zuge eines Kundenprojekts konnte das Research Team der it.sec GmbH zwei bisher unbekannte Schwachstellen in den Content Management Systemen (CMS) eZ Platform Enterprise und Ibexa DXP der Ibexa GmbH identifizieren und ausnutzen. Dabei handelte es sich um ein DOM based Cross-Site-Scripting (XSS) und den Abruf von vertraulichen Informationen ohne entsprechende Authentifizierung. Beide Schwachstellen waren sowohl in der eZ Platform Enterprise als auch im Nachfolger Ibexa DXP ausnutzbar.

Was ist das CMS ez Platform Enterprise und Ibexa DXP

eZ Platform und die Ibexa Digital Experience Platform (DXP) sind Open Source Content Management Systeme (CMS), die von eZ Systems (jetzt Ibexa) und der Community entwickelt wurden. Die eZ Platform Enterprise Edition (EE) ist eine Erweiterung der GPL lizenzierten Software mit zusätzlichen Funktionen und kommerziellem Support. Das Ibexa DXP ist die aktuelle Iteration der Software, welche um diverse Feature erweitert wurde. Die aktive Entwicklung von neuen Features für eZ Platform wurde eingestellt aber Dokumentation, Enterprise-Support und Sicherheitsupdates werden weiterhin bereitgestellt.

DOM based Cross-Site-Scripting Schwachstelle

Beim Ändern eines Profilbildes einzelner Benutzer wurde der Dateiname des Bildes nicht ausreichend überprüft. Durch die Eingabe von Zeichen, die in der HTML-Syntax eine besondere Bedeutung haben (z. B. „<“ und „>“), konnte ein Angreifer zusätzlichen HTML-/Skriptcode in den Namen des Profilbildes einfügen. Der so eingeschleuste HTML-Code wurde dann auf die Webseite kopiert und vom Browser ausgeführt, sobald das Bild über den Dateibrowser ausgewählt wurde.

Dabei wurde der Name des Bildes mittels JavaScript-Code verarbeitet. Der im Bildnamen enthaltene Code wurde dabei von diesem JavaScript-Code interpretiert und im Kontext des Browsers ausgeführt.

Die folgende Abbildung zeigt ein präpariertes Profilbild, wobei im Namen der folgende JavaScript-Code enthalten ist:

><img src=1 onerror=alert(document.domain)>

Wurde nun dieses Bild für den Upload ausgewählt, ist der eingeschleuste Code erfolgreich im Browser ausgeführt worden.

Fazit – DOM based XSS

Über eine DOM basierte Cross-Site-Scripting-Schwachstelle (XSS) in der Anwendung könnten Angreifer andere Benutzer angreifen. Hierbei könnten sie beliebige Funktionen im Kontext des Benutzers ausführen oder die Darstellung der Seite ändern.

Prinzipiell kann ein Angreifer sämtliche Aktionen durchführen, die ein Benutzer tätigen kann. Beispielsweise wäre das Ändern von Artikeln im CMS möglich. Zudem kann der Angreifer hierüber versuchen, Schwachstellen innerhalb des Browsers auszunutzen, um hierdurch einen eigenen Code auf dem Client auszuführen.

Ein Angreifer müsste dafür ein Opfer mit der Berechtigung, Profilbilder von Nutzern zu ändern, dazu bringen, ein von ihm präpariertes Profilbild hochzuladen.

Unauthentifizierter Zugriff auf Profilfotos

Der Aufruf diverser Bilder war ohne Anmeldung möglich. Unter diesen Bildern befanden sich auch die Profilfotos der einzelnen Benutzer.

Die folgende Abbildung zeigt den Aufruf eines solchen Profilfotos, ohne das ein entsprechendes Sitzungs-Cookie mitgesendet wird.

Üblicherweise wird ein Sitzungscookie genutzt, um sicherstellen zu können, dass ein Benutzer angemeldet ist und über die entsprechenden Berechtigungen verfügt, auf die angeforderten Ressourcen zuzugreifen. Da der Zugriff ohne ein gültiges Sitzungscookie möglich war, zeigt dies, dass keine Authentifizierung erforderlich war.

Wie in der vorherigen Abbildung zu sehen ist, war das Bild in mehreren Unterverzeichnissen gespeichert, was es auf den ersten Blick schwierig machte, den Pfad zur Datei zu erraten. Es wurde jedoch festgestellt, dass dieser Pfad in mehreren Schritten ermittelt werden konnte. In einem ersten Schritt mussten gültige Ziffern ermittelt werden, die als Namen für die einzelnen Verzeichnisse definiert waren.

In der nachfolgenden Abbildung ist zu sehen, dass für das Verzeichnis /1/ 200 als HTTP Statuscode zurückgeliefert wurde.

Wurde nun eine offensichtlich falsche Zahl für das erste Unterverzeichnis, in diesem Fall 3000, eingeben, so antwortete der Server mit dem Statuscode 500.

So war es möglich, zwischen gültigen und ungültigen Verzeichnissen zu unterscheiden. Dieser Schritt konnte mit den einzelnen Unterverzeichnissen wiederholt werden. Schließlich musste nur noch der Dateiname des Profilfotos erraten werden, der jedoch mit einem wörterbuchbasierten Brute-Force-Angriff ermittelt werden konnte.

Fazit – Unauthentifizierter Zugriff auf Profilfotos

Ein Angreifer kann sich hierdurch Zugriff auf sensible Daten verschaffen, wie zum Beispiel auf Profilfotos anderer Nutzer.

Dieser Umstand könnte, in Hinblick auf die DSGVO, zur unrechtmäßigen Veröffentlichung von personenbezogenen Daten führen.

Aktueller Stand und weitere Informationen

Die Schwachstellen CVE-2022-25336 und CVE-2022-25337 wurden bereits behoben und Security-Patches stehen bereit. Weitere Details dazu können der Webseite des Herstellers entnommen werden:

Wir raten allen Betreibern des CMS Ibexa DXP und eZ Platform die gepatchte Version zu installieren.

Ihr it.sec Research Team

Back To Top