
Proof-of-Concept-Exploit für die Arbitrary-File-Read-Schwachstelle in ImageMagick (CVE-2022-44268) über manipulierte PNG-Textblöcke, die das Extrahieren von Systemdateien während Bildgrößenänderungen ermöglichen.
Dieses Repository enthält einen Proof of Concept (POC) für eine Sicherheitslücke in ImageMagick (v. 7.1.0-49), einer weit verbreiteten Open-Source-Bibliothek zur Bildbearbeitung. Die Sicherheitslücke ermöglicht es einem Angreifer, den Inhalt einer beliebigen Datei in ein skaliertes Bild einzubetten, wenn ImageMagick eine PNG-Datei analysiert.
Wenn ImageMagick Operationen wie das Skalieren einer PNG-Datei durchführt, kann es den Inhalt einer Systemdatei einfügen, sofern das magick-Binärprogramm über die erforderlichen Berechtigungen zum Lesen verfügt. Diese Sicherheitslücke entsteht durch die fehlerhafte Verarbeitung von Textblöcken in PNG-Dateien.
Ein Angreifer kann diese Sicherheitslücke ausnutzen, indem er eine PNG-Datei erstellt oder eine vorhandene verwendet und einen Textblocktyp (tEXt) hinzufügt. Diese Blöcke bestehen aus einem Schlüsselwort und einer Textzeichenfolge. In diesem Fall, wenn das Schlüsselwort mit der Zeichenfolge "profile" (ohne Anführungszeichen) übereinstimmt, interpretiert ImageMagick die zugehörige Textzeichenfolge als Dateinamen und versucht, deren Inhalt als Rohprofil zu laden. Infolgedessen enthält das heruntergeladene skalierte Bild den Inhalt der vom Angreifer angegebenen entfernten Datei.
Weitere Informationen finden Sie in diesem Artikel von MetabaseQ.
Um ImageMagick auszunutzen, generieren Sie eine bösartige PNG-Datei:
python3 CVE-2022-44268.py /etc/passwd # Create output.png
Führen Sie dann einen Skalierungsvorgang mit convert aus:
convert output.png -resize 50% leak.png
Überprüfen Sie schließlich das Leck-Bild und konvertieren Sie das Raw profile in Hexadezimal:
identify -verbose leak.png
# ...
Raw profile type:
2367
726f6f743a783a303a303a726f6f743a2f726f6f743a2f6269 [...]
python -c "print(bytes.fromhex('726f6f743a783a303a303a726f6f743a2f726f6f743a2f6269 [...]'))"
Hinweis: Dieser POC dient ausschließlich zu Bildungs- und Informationszwecken. Bitte stellen Sie sicher, dass Sie die erforderlichen Berechtigungen und die rechtliche Genehmigung haben, bevor Sie diesen POC auf einem System testen oder verwenden.