1.Zusammenfassung

Zu einem Medienobjekt lassen sich in ILIAS Untertitel hinterlegen. Für mehrere Untertitel auf einmal gibt es einen Weg, sie gebündelt als ZIP-Archiv hochzuladen. Die Anwendung nimmt dieses Archiv entgegen und entpackt es, um an die enthaltenen Untertiteldateien zu kommen.

Das Entpacken geschah unverändert und ungefiltert: Die Einträge des Archivs wurden mit ihren ursprünglichen Namen in ein Arbeitsverzeichnis geschrieben, ohne Beschränkung auf die erwarteten Untertitel-Endungen, ohne Reduktion der Namen auf einen reinen Dateinamen und ohne Entschärfung ausführbarer Dateien. Der einzige Filter überging Metadaten-Einträge, wie sie manche Packprogramme hinzufügen. Damit überstand jeder beliebige Eintrag das Entpacken – auch ein PHP-Skript.

Entscheidend ist der Ort: Das Arbeitsverzeichnis liegt unterhalb des vom Webserver ausgelieferten Datenverzeichnisses. Normalerweise schützt ILIAS diesen Bereich, indem tiefe Zugriffe über eine Zugriffskontrolle geleitet werden, die Dateien ausliefert oder verweigert, statt sie auszuführen. Weil das Archiv jedoch zusätzlich eine eigene .htaccess mitbringen konnte und die ausgelieferte Serverkonfiguration lokale Übersteuerungen zulässt, ließ sich diese Schutzumleitung für das eine Verzeichnis abschalten. Das abgelegte PHP-Skript wurde dann vom normalen PHP-Handler ausgeliefert und ausgeführt.

Voraussetzung war ein angemeldetes Konto mit dem Recht, ein Medienobjekt zu bearbeiten – etwa Schreibrecht auf einem Medienpool. Das ist eine gewöhnlich delegierte Autorenbefugnis, kein Administrationszugang und nichts, was ohne Anmeldung erreichbar wäre.

2.Betroffene Systeme

Betroffen waren alle zum Zeitpunkt der Meldung gepflegten Versionslinien, jeweils bis zu dem Stand, der die Korrektur enthält. Die Behebung erschien in der Release-Runde vom 12.08.2026.

Betroffenheit je Versionslinie und der jeweils behebende Stand
Versionslinie Betroffen Behoben in
ILIAS 9 alle Stände vor 9.22 9.22
ILIAS 10 alle Stände vor 10.10 10.10
ILIAS 11 alle Stände vor 11.3 11.3
ILIAS 12 Vorabversion 12.0 (Alpha) innerhalb der 12.0-Alpha-Reihe

Über die Version hinaus bestimmen zwei Eigenschaften der Installation, wie gut der beschriebene Weg funktioniert: ob das Datenverzeichnis vom Webserver überhaupt ausgeliefert wird und dort PHP ausgeführt werden kann, und ob die ausgelieferte Konfiguration lokale Übersteuerungen per .htaccess zulässt. Beides entspricht dem üblichen Auslieferungszustand. Es ist ein Grund mehr, diese Bereiche zu härten, aber kein Ersatz für das Update.

3.Technische Analyse

Voraussetzungen. Ein angemeldetes Konto mit dem Recht, ein Medienobjekt zu bearbeiten – etwa Schreibrecht auf einem Medienpool. Keine Administrationsrechte, keine Nutzerinteraktion auf der Gegenseite.

Der Befund entsteht nicht aus einer einzelnen falschen Prüfung, sondern aus dem Zusammentreffen zweier für sich genommener Entscheidungen: Ein Archiv aus fremder Hand wird ungefiltert entpackt, und das geschieht an einem Ort, den der Webserver ausliefert und an dem er PHP ausführt.

Die Kette

  1. Der Einstieg prüft nur die Rechte, nicht den Inhalt Die Oberfläche zum Hochladen mehrerer Untertitel prüft, ob der Aufrufer das Medienobjekt bearbeiten darf. Das hochgeladene Archiv selbst unterliegt keiner inhaltlichen Einschränkung; erwartet werden Untertitel, erzwungen wird das nicht.
  2. Das Ziel liegt im ausgelieferten Bereich Das Archiv wird in ein Arbeitsverzeichnis unterhalb des Datenverzeichnisses verschoben, das der Webserver ausliefert – nicht in einen internen, nicht ausgelieferten Ablageort.
  3. Entpackt wird unverändert Die Extraktion behält die ursprünglichen Eintragspfade bei. Es gibt keine Beschränkung auf erlaubte Endungen, keine Reduktion auf einen reinen Dateinamen und keine Entschärfung ausführbarer Dateien. Der einzige Filter überspringt Metadaten-Einträge einzelner Packprogramme. Damit übersteht jeder Eintrag das Entpacken – auch ein PHP-Skript und eine .htaccess.
  4. Die mitgelieferte Konfiguration hebt den Schutz auf Tiefe Zugriffe auf das Datenverzeichnis werden normalerweise über eine Zugriffskontrolle umgeleitet, die Dateien ausliefert oder verweigert, statt sie auszuführen. Die mit dem Archiv abgelegte .htaccess schaltet diese Umleitung für das betroffene Verzeichnis ab – möglich, weil die ausgelieferte Serverkonfiguration lokale Übersteuerungen zulässt. Das abgelegte Skript wird anschließend vom normalen PHP-Handler ausgeführt.

Warum das eigentliche Problem nicht der Pfadausbruch ist

Beim Entpacken fremder Archive denkt man zuerst an den Ausbruch aus dem Zielverzeichnis über Rücksprünge im Pfad. Der war hier gar nicht nötig und ist zudem von der eingesetzten PHP-Laufzeit ohnehin unterbunden. Das Problem ist ein anderes: Der Inhalt eines nicht vertrauenswürdigen Archivs landet unverändert an einer Stelle, die der Webserver ausführt. Wirksam ist an dieser Stelle, entweder in einen nicht ausgelieferten Bereich zu entpacken oder die Einträge auf eine Positivliste erlaubter Endungen zu beschränken und ausführbare Dateien zu entschärfen – und lokale Übersteuerungen der Serverkonfiguration im Datenverzeichnis gar nicht erst zuzulassen.

Zurückgehalten

Dieses Advisory zeigt weder den Aufbau des Archivs noch den Inhalt der abgelegten Dateien, noch den Weg, auf dem sich die abgelegte Datei ohne Serverzugriff wieder auffinden ließ, noch die Abfolge der Aufrufe. Die Ursache ist auch ohne diese Angaben vollständig beschrieben; für Betreiber ändert sich durch sie nichts, für einen Angreifer gegen eine nicht aktualisierte Instanz sehr wohl.

4.Auswirkung (Impact)

Am Ende der Kette steht Codeausführung im Kontext des Webserver-Benutzers. Das ist der schwerste Fall, den eine Webanwendung kennt: Wer an dieser Stelle Code ausführt, liest und verändert den gesamten Datenbestand der Instanz, erreicht über die Konfiguration den Datenbankzugang, kann sich dauerhaft einnisten und von dort weiter in die Umgebung vorarbeiten.

Was den Befund von einer anmeldefreien Übernahme unterscheidet, ist allein die Eintrittskarte: Es braucht ein Konto mit Bearbeitungsrecht auf einem Medienobjekt. Das ist keine hohe Hürde – Autoren- und Redaktionsrechte auf Medienpools werden in vielen Installationen breit vergeben, an Personen, denen niemand die Übernahme des Servers zutrauen würde.

Warum hier keine eigene CVSS-Einstufung steht

Die Auswirkung selbst ist eindeutig und lässt keinen Spielraum: vollständige Codeausführung, der Höchstwert. Was sich zwischen Installationen unterscheidet, ist die Erreichbarkeit – wie breit Bearbeitungsrechte auf Medienobjekte vergeben sind, ob das Datenverzeichnis ausgeliefert wird und ob dort PHP ausgeführt werden kann. Eine einzelne Zahl bildet dieses Nebeneinander aus „so schlimm wie möglich, sobald es greift“ und „greift je nach Aufbau unterschiedlich leicht“ schlecht ab. Für die Priorisierung ist der Satz unten belastbarer als ein Score.

Auswirkung in einem Satz: vollständige Codeausführung als Webserver-Benutzer, ausgelöst von jedem Konto, das ein Medienobjekt bearbeiten darf.

5.Gegenmaßnahmen / Workarounds

Update

Die maßgebliche und einzige vollständige Maßnahme ist das Update auf ILIAS 9.22, 10.10 oder 11.3. Die Versionen wurden am 12.08.2026 bereitgestellt und enthalten neben dieser Korrektur weitere Sicherheitsbehebungen.

Überbrückung, wenn nicht sofort aktualisiert werden kann

  • Bearbeitungsrechte auf Medienobjekte einschränken. Je weniger Konten Medienpools bearbeiten dürfen, desto kleiner ist der Kreis, aus dem der Weg überhaupt beschritten werden kann. Das ist die wirksamste organisatorische Sofortmaßnahme.
  • Ausführung im Datenverzeichnis unterbinden. Der ausgelieferte Datenbereich sollte keine PHP-Ausführung erlauben und keine lokalen Übersteuerungen der Serverkonfiguration zulassen. Diese Härtung entzieht dem letzten Kettenglied die Grundlage und wirkt unabhängig von diesem Befund.
  • Zugangsdaten erneuern. Muss davon ausgegangen werden, dass Code ausgeführt wurde, sind die in der Konfiguration hinterlegten Geheimnisse als kompromittiert zu behandeln – Datenbankzugang und Setup-Passwort zuerst.

Prüfung auf zurückliegende Ausnutzung

  • Fremde Dateien im Datenverzeichnis. Ausführbare Dateien oder .htaccess-Dateien unterhalb der Medienobjekt-Verzeichnisse des Datenbereichs, die dort nichts zu suchen haben, sind ein eindeutiger Befund.
  • Zugriffe auf ausgelieferte Datenpfade in den Protokollen des Webservers – insbesondere direkte Aufrufe von Skriptdateien unterhalb des Datenverzeichnisses.
  • Kurz nacheinander erzeugte und wieder entfernte Medienobjekte, soweit sich das aus Protokolldaten rekonstruieren lässt.

Ergibt sich ein begründeter Verdacht, ist der Webserver-Benutzer als kompromittiert zu behandeln: hinterlegte Zugangsdaten erneuern, Sitzungen invalidieren und die Instanz aus einem sauberen Stand wiederherstellen.

6.Disclosure-Timeline

  1. Identifikation und Meldung an den Hersteller Mantis 0048067
  2. Patch durch den Hersteller ILIAS 9.22, 10.10 und 11.3
  3. Veröffentlichung dieses Advisories

7.Referenzen

Rückfragen zu diesem Advisory

Fragen richten Sie bitte an security@schweigertit.de, gerne verschlüsselt. Proof-of-Concept-Code gebe ich auch auf Anfrage nicht heraus.