Am 3. Mai 2016 wurde die Existenz mehrerer Schwachstellen in ImageMagick bekanntgegeben, die es einem Angreifer unter anderem erlauben, durch das Hochladen einer Bilddatei beliebige Befehle auf dem Zielsystem auszuführen. Nur wenige Stunden später wurde ebenfalls bekanntgegeben, wie sich die Schwachstelle ausnutzen lässt. Gefunden wurden die Schwachstellen von den Sicherheitsforschern "Stewie" und Nikolay Ermishkin. Im Zusammenhang mit diesen Schwachstellen kursiert bereits der Bezeichner "ImageTragick".
ImageMagick ist eine weitverbreitete Linux-Tool-Sammlung, die sich gut dafür eignet, Bilder in automatisierter Weise zu bearbeiten. Sie wird daher oft auf Webservern eingesetzt, um beispielsweise von Benutzern hochgeladen Bilder in andere Formate zu konvertieren oder zu Thumbnails zu reskalieren. Viele Frameworks, CMS-Plugins und Bibliotheken greifen auf dieses Tool zurück. Auch Typo3 ist so angreifbar, wie die SySS GmbH verifiziert hat.
ImageMagick unterstützt sehr viele verschiedene Bildformate. Zwei davon, svg und mvg, bringen teilweise sehr mächtige Funktionen mit, die die Ausführung von Systembefehlen notwendig machen. Weil ImageMagick dabei nicht immer Dateinamen auf Korrektheit prüft, können Angreifer so ihre eigenen Befehle einschleusen.
Dabei ist es unerheblich, welche Endung der Name der zu bearbeitenden Bilddatei hat. ImageMagick bestimmt den Dateityp nicht anhand der Dateiendung, sondern mittels den sogenannten Magic Bytes. Hierbei handelt es sich um die ersten Zeichen am Beginn der Datei.
Betroffen sind potenziell alle Linux-Webserver, die hochgeladene Bilddateien automatisch bearbeiten. Um einen Server zu testen, kann man auf dem Server eine Datei mit dem untenstehenden Inhalt erstellen und danach den darauffolgenden convert-Befehl ausführen. Läuft auf dem Server eine verwundbare ImageMagick-Version, erscheint in der Ausgabe das Wort "BETROFFEN".
ERROR: Content Element with uid "1698" and type "parsedown_markdown" has no rendering definition!
ImageMagick in der Version 6.9.3-9 sollte das Problem eigentlich beheben, ist aber offenbar immer noch verwundbar.
Unabhängig von einem noch ausstehenden Patch ist es empfehlenswert, grundsätzlich nur Bilddateien an convert zu übergeben, die tatsächlich auch Bilder sind, was sich nur anhand der Magic Bytes prüfen lässt. Diese empfehlenswerte Prüfung geschieht häufig bereits beim Upload des Bildes durch einen Benutzer, aber eben nicht immer. Für die Prüfung sollte außerdem kein ImageMagick-Tool wie identify verwendet werden, da dieses ebenfalls verwundbar ist.
Der folgende Bash-Befehl prüft auf korrekte und sichere Weise, ob es sich um eine JPEG-Datei handelt oder nicht:
ERROR: Content Element with uid "1700" and type "parsedown_markdown" has no rendering definition!
Alternativ kann das Tool file verwendet werden.
Zusätzlich ist darauf zu achten, auch in der Policy-Datei von ImageMagick (für gewöhnlich /etc/ImageMagick/policy.xml) die verwundbaren Funktionen abzuschalten. Eine Beispielkonfiguration lautet:
ERROR: Content Element with uid "1702" and type "parsedown_markdown" has no rendering definition!
08.10.2024
- 09.10.2024
Hack1/Hack2: Hacking Workshop
10.10.2024
- 11.10.2024
Hack1/Hack2: Hacking Workshop
15.10.2024
Awe2: Phishing Awareness
15.10.2024
- 16.10.2024
Hack7: Sicherheit und Einfallstore bei Webapplikationen
Ihr direkter Kontakt zu SySS +49 (0)7071 - 40 78 56-0 oder anfrage@syss.de | IN DRINGENDEN FÄLLEN AUSSERHALB DER GESCHÄFTSZEITEN +49 (0)7071 - 40 78 56-99
Als Rahmenvertragskunde wählen Sie bitte die bereitgestellte Rufbereitschaftsnummer
Ihr direkter Kontakt zu SySS +49 (0)7071 - 40 78 56-0 oder anfrage@syss.de
IN DRINGENDEN FÄLLEN AUSSERHALB DER GESCHÄFTSZEITEN +49 (0)7071 - 40 78 56-99
Als Rahmenvertragskunde wählen Sie bitte die bereitgestellte Rufbereitschaftsnummer
Direkter Kontakt
+49 (0)7071 - 40 78 56-0 oder anfrage@syss.de
IN DRINGENDEN FÄLLEN AUSSERHALB DER GESCHÄFTSZEITEN
+49 (0)7071 - 40 78 56-99
Als Rahmenvertragskunde wählen Sie bitte die bereitgestellte Rufbereitschaftsnummer