Die Originaldokumentation zu ImageTragick warnte am 4. Mai 2016 vor mehreren Schwachstellen in ImageMagick. Die Open-Source-Bibliothek wird von Webdiensten und mehreren Programmbibliotheken zur Verarbeitung hochgeladener Bilder eingesetzt. Bei einer unsicheren Konfiguration konnte bereits eine Bilddatei zur Ausführung von Schadcode führen.
Im Mittelpunkt stand CVE-2016-3714. Die Verarbeitung bestimmter Dateinamen und Bildformate konnte Zeichen an externe Befehle weiterreichen. ImageMagick nutzt für einige Formate sogenannte Delegates, die externe Programme aufrufen. Ein Dienst, der Nutzereingaben ungeprüft an die Bibliothek übergibt, war damit einem Risiko durch präparierte Dateien ausgesetzt.
Mehrere Wege aus der Bildverarbeitung heraus
Die Dokumentation nennt neben der möglichen Code-Ausführung auch Anfragen an externe Server, das Löschen und Verschieben von Dateien sowie das Auslesen lokaler Dateien. Dafür waren unterschiedliche Pseudoformate und Verarbeitungswege verantwortlich. Betroffen waren unter anderem Umgebungen mit PHP, Ruby und Node.js, die ImageMagick über eigene Erweiterungen einbinden.
Als kurzfristige Maßnahme empfahl die Originalseite, nur ausdrücklich erlaubte Bildformate an ImageMagick weiterzugeben und die übrigen Codierer über die Policy-Datei zu deaktivieren. Genannt werden unter anderem EPHEMERAL, URL, MVG und MSL. Eine Sandbox sollte zusätzlich verhindern, dass ein Fehler in der Bildverarbeitung direkt auf das übrige System durchschlägt.
Sicherheitsprüfung für Asset-Pipelines
Für Entwicklungs-, Redaktions- und Content-Pipelines ist die Trennung zwischen Dateiupload und Konvertierung entscheidend. Bilddateien sollten nicht allein anhand ihrer Endung akzeptiert werden. Die ImageTragick-Dokumentation weist darauf hin, dass ImageMagick den Dateityp auch aus dem Inhalt erkennen kann. Eine erlaubte Dateiendung schließt einen missbrauchbaren Inhalt deshalb nicht automatisch aus.
Ein ähnliches Sicherheitsmuster zeigte zuvor ein Fehler in Minecraft: Manipulierte Spielerköpfe konnten zusätzliche Netzwerkzugriffe auslösen. Der Bericht zur Minecraft-Server-Sicherheitslücke beschreibt, warum auch scheinbare Grafikdaten bei Spielen Teil der Angriffsfläche sein können. Für ImageMagick blieb die konkrete Absicherung von der eingesetzten Version und der Konfiguration der jeweiligen Anwendung abhängig.
