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.
26.10.2023 - Rene Rehme
Im Zuge eines Penetrationstests wurde eine Local File Inclusion (LFI) Sicherheitslücke in ILIAS Version7.25 (2023-09-12 Release) entdeckt. Eine Ausnutzung hat zudem zur Folge, dass durch den Angreifer definierte Dateien bzw. ganze Verzeichnisse verschoben werden (Arbitrary File Movement) Für die Ausnutzung der Sicherheitslücke werden keine Administrator-Rechte benötigt.
⚑ 25. Sep. 2023 - Die Sicherheitslücke wurde identifiziert.
→ 26. Sep. 2023 - Die Sicherheitslücke wurde an ILIAS gemeldet.
← 29. Sep. 2023 - ILIAS bestätigt den Erhalt des Reports.
← 06. Okt. 2023 - ILIAS bestätigt, dass die Sicherheitslücke geschlossen wurde.
← 23. Okt. 2023 - Patched ILIAS-Release: 8.6, 7.26
Eine Local File Inclusion Schwachstelle wurde im Modul ScormAicc gefunden. Ein Angreifer, mit einem privilegierten Account, kann mit entsprechender Berechtigung potenziell den Inhalt jede auf dem Webserver abgelegten Datei, welche mit dem Webserver-User www-data gelesen werden kann, abrufen. Zum Beispiel Konfigurationsdateien oder auch Dateien außerhalb des documentRoot.
Zu sehen ist, wie die Systemdatei /etc/passwd , welche außerhalb des documentRoot liegt und eigentlich nicht öffentlich abrufbar ist, ausgelesen wird.
Schritt 1:
Installieren Sie eine ILIAS Version7.25 (2023-09-12 Release) Instanz auf einem Testsystem.
Schritt 2:
Loggen Sie sich mit einem User Account ein, der die Rechte Einstellungen bearbeiten: ILIAS-Lernmodul bearbeiten besitzt.
Der Download-Link ist (z.B.) wie folgt aufgebaut:
http://ilias.local/ilias.php?ref_id=157&file=1697232056__0__sahs_671.zip&type=SCORM%202004%203rd&cmd=downloadExportFile&cmdClass=ilobjscorm2004learningmodulegui&cmdNode=wz:q3&baseClass=ilsahseditgui
Modifizieren Sie den URL-Parameter file, um via Directory Traversal z.B. auf die Systemdatei /etc/passwd zuzugreifen:
https://ilias.local/ilias.php?ref_id=157&file=../../../../../../../../etc/passwd&cmd=downloadExportFile&cmdClass=ilobjscorm2004learningmodulegui&cmdNode=wz:q3&baseClass=ilSAHSEditGUI
Je nachdem unter welchem Pfad die Ilias Instanz installiert wurde, müssen entsprechend ../ in der URL erweitert oder entfernt werden.
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.
Privileges Required (PR): L
Der Angreifer benötigt Privilegien, die grundlegende Benutzerfunktionen eines Users bereitstellen. Für eine Ausnutzung reicht i.d.R die "Tutoren" Rolle.
User Interaction (UI): N
Es ist keine User-Interaktion durch ein Opfer notwendig.
Scope (S): U
Die anfällige und betroffene Komponente ist die Webanwendung.
Confidentiality (C): H
Bei einem erfolgreichen Angriff kommt es zu einem totalen Verlust der Vertraulichkeit. Ressourcen innerhalb der betroffenen Komponente und weiterführend Komponenten des Betriebssystems werden dem Angreifer bei gegebenem Lesezugriff und entsprechender Berechtigung durch den Webserver-User www-data offengelegt, indem Verzeichnisse mit Dateien an einen öffentlich abrufbaren Ort verschoben werden.
Integrity (I): N
Bei einem erfolgreichen Angriff kommt es zu keinem Verlust der Integrität. Der Angreifer ist nicht in der Lage, Dateien zu verändern. Vermutlich könnte ein Angreifer durch das Verschieben von Konfigurationsdateien an Zugänge gelangen, die Zugriff auf weitere Komponenten zur Folge haben (siehe PoC Bild). Es ist demnach potenziell möglich, dass ein Angreifer Daten oder Dateien durch eine weiterführende Eskalation verändern kann. Dies ist aber spekulativ.
Availability (A): H
Bei einem erfolgreichen Angriff ist der Angreifer ist in der Lage, den Zugang zu den Ressourcen der betroffenen Komponente und weiterführend aus Komponenten des Betriebssystems durch das Verschieben (und nachträglich löschen) von Verzeichnissen vollständig zu verweigern.
heise online
CVE (MITRE)
https://www.cve.org/CVERecord?id=CVE-2023-45867
NIST (National Vulnerability Database)