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.
18.02.2024 - Rene Rehme
Im Zuge eines Penetrationstests haben wir mehrere Sicherheitslücken in ILIAS Version 7.27, 8.8 und 9.0 Beta 2 identifiziert. In dieser Veröffentlichung geht es um mehrere Scross Site Scripting (XSS) Sicherheitslücken. Diese Sicherheitslücke erlaubt es einem Angreifer, clientseitigen Code im Kontext eines Opfers auszuführen.
⚑ 18. Jan. 2024 - Die Sicherheitslücke wurde identifiziert.
→ 23. Jan. 2024 - Die Sicherheitslücke wurde an ILIAS gemeldet.
← 29. Jan. 2024 - ILIAS bestätigt den Erhalt des Reports.
← 16. Feb. 2024 - ILIAS bestätigt, dass die Sicherheitslücke geschlossen wurde.
← 16. Feb. 2024 - Patched ILIAS-Release: 8.9, 7.28
In verschiedenen ILIAS Modulen wurden mehrere XSS Schwachstellen gefunden. Ein Angreifer, mit einem User-Account, kann mit entsprechender Berechtigung Schadcode hinterlegen. Zum Beispiel könnten durch eine erfolgreiche Ausnutzung Rechte eskaliert werden. Bei der Bewertung der Sicherheitslücken wurden keine derartigen Angriffsvektoren berücksichtigt! In den folgenden Aufzählungen handelt es sich um Reflected XSS, wie auch Stored XSS.
Über das Eingabefeld Important Information unter dem Reiter Settings einer Personal (Shared) Resource lässt sich reflektiertes XSS auf Basis von Markdown ermöglichen. Eine funktionierende Payload wird durch folgendes Markup ausgeführt: [xss](javascript:alert(1)). Durch die Option Redirect user to the file’s ‘Info’ tab kann Schadcode, nach Veröffentlichung der Resource, potenziell von jedem User ausgeführt werden. Vermutlich kann diese Payload über jeden Bereich, indem die Verwendung von Markup möglich ist, angewendet werden.
Wird bei der Erstellung eines Unterordners im Bereich Mail der Titel " onload=alert(1)> angegeben, wird XSS in der Ausgabe ermöglicht. Vermutlich findet diese Payload über jeden Bereich Anwendung, inwelchem Ordner oder andere Objekte erstellt werden können, die in der linken Seitennavigation mit einem Icon dargestellt werden.
Die Suchfunktion innerhalb eines Forums ist anfällig für XSS. Durch den Suchbegriff "><img src=x onerror=alert(1)> wird XSS in der Ausgabe ermöglicht.
Über den HTTP Anfrage-Parameter backurl kann Javascript hinterlegt werden, welches beim Klick auf den Button < Back interpretiert wird. z.B.:
GET /ilias.php?baseClass=ilrepositorygui&cmdNode=xf:ms&cmdClass=ilObjForumGUI&cmd=showUser&ref_id=111&backurl=javascript:alert(1)&thr_pk=3&user=6 HTTP/1.1
Host: ilias.local:8080
HINWEIS: Die Meldung dieser Sicherheitslücke wurde bereits vor mir gemeldet. Credits: Sasi Kumar
In ILIAS 8 kann XSS via POST Request auf ein Suchformular getriggert werden (keine Anmeldung erforderlich):
POST /ilias.php?baseClass=ilsearchcontrollergui&cmdClass=ilLuceneSearchGUI&cmd=postPOST HTTP/1.1
Host: ilias.local:8080
queryString="><script>alert(1)</script>
Wird ein Ordner im Repository mit dem Titel " onload=alert(1)> erstellt, wird XSS in der Ausgabe ermöglicht, wenn der Tab Last Visited in der linken Navigatonsleiste geöffnet wird. Die Payload wird wie folgt interpretiert:
<img class="icon custom small" src="./templates/default/images/standard/icon_cat.svg" alt="" onload="alert(1)">
Unter dem Reiter Metadata kann durch das Feld Keywords ebenfalls XSS ermöglicht werden. Die Eingabe "><img src=x onerror=alert(1)> wird in der Ausgabe (über den Info Tab) Interpretiert. Vermutlich kann diese Payload über jeden Bereich, indem Keywords angegeben werden können, angewendet werden.
Bei einer Standardinstallation ist einem regulären Benutzer erlaubt, Dateien mit den Erweiterungen .html und .htm hochzuladen - beispielsweise im Rahmen eines Portfolios über das Content-Element Insert Image/Media . Dies sollte kritisch hinterfragt werden, insbesondere in Anbetracht der Tatsache, dass in neueren Versionen die Funktion HTML / Javascript erlauben in diesem Sinne abgeschafft wurde.
Als Ergebnis bietet dieses Feature per default die Möglichkeit XSS durchzuführen - OHNE (analog zu ILIAS 7) einen Sicherheitshinweis für den Betreiber im Adminbereich.
Es besteht zudem keine Möglichkeit dies zu unterbinden. Unter Administration -> File Services kann in den Feldern File Suffixes: Negative List (Removals) und Prohibited File Suffixes zwar die Angabe html html erfolgen, welche aber KEINE Auswirkung auf dieses Uploadformular hat.
CWE-20 Improper Input Validation
CWE-79 Improper Neutralization of Input During Web Page Generation (Cross-site Scripting)
ILIAS (Vendor) Advisories
https://docu.ilias.de/goto_docu_pg_159931_35.html
https://docu.ilias.de/goto_docu_pg_154886_35.html