Weitere Veröffentlichungen

In unserem Labor schreiben wir regelmäßig in Form von Blogbeiträgen über identifizierte Sicherheitslücken, welche nach dem Responsible Disclosure Verfahren veröffentlicht werden.

Veröffentlichung (CVE-2024-XXXXX)

ILIAS 7 & 8 - OS Command Injection

13.08.2024 - Rene Rehme

Im Zuge eines Penetrationstests haben wir eine Sicherheitslücken in ILIAS Version 7.30 und 8.11 identifiziert. Es konnte eine sogenannte OS Command Injection bewerkstelligt werden. Dies ist eine Sicherheitslücke, bei der von einem Angreifer übermittelte Befehle auf Betriebssystem-Ebene ausgeführt werden können. In diesem Fall ist es möglich beliebig Kommandozeilen-Befehle auszuführen.

Responsible Disclosure

2024 - Die Sicherheitslücke wurde identifiziert.

14. Mai. 2024 - Die Sicherheitslücke wurde an ILIAS gemeldet.

24. Mai. 2024 - ILIAS open source e-Learning e.V merkt an: Sicherheitsupdates werden nur noch für die ILIAS-Versionen 8, 9 und 10 (trunk) berücksichtigt.

Allgemeine Beschreibung

Ein Benutzer mit Administrator-Rechten kann in ILIAS Konfigurationen für den PDF-Renderer vornehmen. Die Komponente, welche diese Einstellungen verarbeitet ist vulnerabel, wodurch Angreifer die Möglichkeit haben, Systembefehle einzuschleusen. 

Proof of Concept (PoC)

Reproduktionsschritte

Schritt 1:

Zunächst muss eine ILIAS-Version7.30 Instanz auf einem Testsystem installiert werden. Sobald der Login als Administrator (root) erfolgt ist, muss auf die Seite Administration -> PDF-Erstellung(1) navigiert und unter dem Tab Einstellungen auf den Button Konfiguriere Renderer(2) in der Sektion Portfolio / ContentExport geklickt werden.

test

Schritt 2:

Folgende Payload muss in das Formular-Feld Path to checkbox svg eingefügt und das Formular über den Button Speichern abgeschickt werden.

payload
0" --load-error-handling "ignore" /etc/passwd /tmp/x.pdf && echo 'Exploit executed successfully' > /tmp/poc.txt # -

Mit dieser Payload wird eine Datei poc.txt im Verzeichnis /tmp abgelegt.

Schritt 3:

Ein PDF-Export ist erforderlich. Hierzu muss ein Portfolio erstellt werden und abschließend ein PDF-Export ausgeführt werden:

test

Schritt 4:

Auf dem Webserver kann nun überprüft werden, ob die Payload erfolgreich ausgeführt wurde:

test

Voraussetzungen für die Ausnutzung

Die Voraussetzungen für eine erfolgreiche Ausnutzung:
 

  • Ein Angreifer benötigt Zugriff auf einen Account mit mindestens den Rechten eines Administrators (root).


Hinweis: Die Schwachstelle OS Command Injection kann durch eine XSS Schwachstelle (sofern gegeben) mit einem regulären User-Account eskaliert werden.

Auswirkungen

Diese Schwachstelle kann erhebliche Auswirkungen auf die Sicherheit der betroffenen ILIAS-Installation und des zugrunde liegenden Betriebssystem haben. Alle auf dem Server gespeicherten Daten, Dateien und Komponenten, die der Webserver-User mit gegebenen Rechten lesen, schreiben oder ausführen kann, sind potenziell betroffen. Ein Angreifer, der diese Schwachstelle erfolgreich ausnutzt, könnte zudem das System beschädigen oder weitere Angriffe (z.B. auf externe Dienste wie LDAP durch einsehbare Credentials) durchführen.

Bewertung

Exploitability Metrics

Attack Vector (AV): N
Es handelt sich um einen Netzwerkangriff. Die verwundbare Komponente ist "aus der Ferne ausnutzbar" und wird als ein Angriff betrachtet, der auf Protokollebene über das Internet stattfindet.
 

Attack Complexity (AC): L
Besondere Zugangsbedingungen oder mildernde Umstände bestehen nicht.
 

Attack Requirements (AT): N
Es wird davon ausgehen, dass die Payload in den meisten Fällen erfolgreich ausgeführt wird. Es werden keine besonderen Einstellungen oder Konfigurationen vorrausgesetzt.
 

Privileges Required (PR): H
Der Angreifer benötigt Privilegien, die Benutzerfunktionen eines root Users bereitstellen.

User Interaction (UI): N
Es ist keine User-Interaktion durch ein Opfer notwendig.

Exploitability Metrics

Attack Vector (AV): N
Es handelt sich um einen Netzwerkangriff. Die verwundbare Komponente ist "aus der Ferne ausnutzbar" und wird als ein Angriff betrachtet, der auf Protokollebene über das Internet stattfindet.
 

Attack Complexity (AC): L
Besondere Zugangsbedingungen oder mildernde Umstände bestehen nicht.
 

Attack Requirements (AT): N
Es wird davon ausgehen, dass die Payload in den meisten Fällen erfolgreich ausgeführt wird. Es werden keine besonderen Einstellungen oder Konfigurationen vorrausgesetzt.
 

Privileges Required (PR): H
Der Angreifer benötigt Privilegien, die Benutzerfunktionen eines root Users bereitstellen.

User Interaction (UI): N
Es ist keine User-Interaktion durch ein Opfer notwendig.

Vulnerable System Impact Metrics

Confidentiality (VC): H
Bei einen erfolgreichen Angriff kommt es zu einem totalen Verlust der Vertraulichkeit. Ressourcen innerhalb der betroffenen Komponente werden dem Angreifer bei gegebenem Lesezugriff und entsprechender Berechtigung durch den Webserver-User www-data offengelegt. Code wird serverseitig ausgeführt.
 

Integrity (VI): H
Bei einem erfolgreichen Angriff kommt es zu einem totalen Verlust der Integrität. Der Angreifer ist in der Lage Dateien der betroffenen Anwendung zu verändern. Code wird serverseitig ausgeführt.
 

Availability (VA): H
Bei einem erfolgreichen Angriff ist der Angreifer ist in der Lage, den Zugang zu den Ressourcen der betroffenen Applikation vollständig zu verweigern, indem z.B. Dateien oder Daten gelöscht werden. Code wird serverseitig ausgeführt.

Subsequent System Impact Metrics

Confidentiality (SC): H
Bei einem erfolgreichen Angriff kommt es zu einem totalen Verlust der Vertraulichkeit. Ressourcen und Komponenten des Betriebssystems werden dem Angreifer bei gegebenem Lesezugriff und entsprechender Berechtigung durch den Webserver-User www-data offengelegt. Der Zugriff wird z.B. auf MySQL, sonstige Komponenten oder andere Applikationen tendenziell ermöglicht. Code wird serverseitig ausgeführt.
 

Integrity (SI): H
Bei einem erfolgreichen Angriff kommt es zu einem totalen Verlust der Integrität. Der Angreifer ist in der Lage Dateien des Betriebssystems oder anderen Applikationen zu verändern. Code wird serverseitig ausgeführt.
 

Availability (SA): H
Bei einem erfolgreichen Angriff ist der Angreifer ist in der Lage, den Zugang zu den Ressourcen aus Komponenten des Betriebssystems oder ggf. anderen Applikationen vollständig zu verweigern, indem z.B. Dateien oder Daten mit den Rechten des Webserver-Users gelöscht werden. Code wird serverseitig ausgeführt.