In Ghostscript wurde eine Sicherheitsanfälligkeit gefunden, die die Ausführung von Code ermöglichen könnte

Vor ein paar Jahren Tage veröffentlichten sie die Nachrichten von dem, was identifiziert wurde eine Sicherheitslücke in Ghostscript (CVE-2020-15900) was könnte Dateimodifikation und willkürliche Befehlsausführung verursachen beim Öffnen speziell formatierter PostScript-Dokumente.

Für diejenigen, die mit Ghostscript nicht vertraut sind, sollte das wissen Dies ist eine Rendering-Engine für Postscript- und PDF-Inhalte und es wird häufig verwendet, um PDF- und Postscript-Dokumente für Vorschau-, Miniatur- und Druckzwecke in Bilder zu konvertieren.

Es wird auch für die vollständige Wiedergabe von Dokumenten in voller Qualität für viele PDF-Viewer verwendet, einschließlich beliebter Viewer auf Android, und wird von mehreren großen Unternehmen wie Google für das Rendern in der Cloud lizenziert.

Über die Sicherheitslücke in Ghostscript

Der Fehler wurde bei der Verwendung des Operators rsearch festgestellt Nicht standardmäßiges PostScript in einem Dokument, das einen Überlauf vom Typ uint32_t verursachen kann bei der Berechnung der Größe, überschreiben Sie Speicherbereiche aus dem Puffer zugewiesen und Zugriff auf Dateien im Dateisystem erhalten, mit denen ein Angriff zur Ausführung von beliebigem Code auf dem System durchgeführt werden kann (z. B. durch Hinzufügen von Befehlen zu ~ / .bashrc oder ~ / .profile).

Das von AFL gefundene Snippet schob eine leere Zeichenfolge auf den Stapel: Die leeren Klammern () kopierten den Verweis darauf, was zu einem Stapel mit zwei leeren Zeichenfolgen () () führte, und führten dann die umgekehrte Suche durch. Mit anderen Worten, es wurde nach einer leeren Zeichenfolge in einer leeren Zeichenfolge gesucht, beginnend am Ende.

Leider haben sie einen Grenzfall verpasst, in dem die leere Zeichenfolge durchsucht wird. Bei der Suche nach einer leeren Zeichenfolge wird dies als sofortiger Erfolg definiert. Es gibt nichts zu suchen, sodass wir bis zum Ende springen. Das Ergebnis muss jedoch in die Werte vor, nach und nach dem Spiel unterteilt werden. Leider ging der Code davon aus, dass wir mindestens einmal nachgesehen und die Länge des Ergebnisses nach dem Spiel falsch berechnet hatten, indem wir eins von Null subtrahierten, was zu einer Rückkehr zum Maximalwert führte: 4,294,967,295.

Dieser Fehler Es handelt sich um einen Speicherfehler, bei dem die Möglichkeit eines Fehlers besteht und es passiert die ganze Zeit. Sie müssen sich nicht mit Stack Guards usw. befassen, sondern lesen und schreiben einfach alles, was Sie möchten, in ein riesiges Speichersegment. Dies machte es für jemanden, der kein erfahrener Exploit-Autor ist, ziemlich einfach, es auszunutzen.

Aufgrund dieses Unterlaufs, diese Zeichenfolge war nie zugewiesen worden und nahm keinen realen Platz ein, aber es hatte eine Länge, die sich auf eine andere Erinnerung erstreckte. Der Versuch, diesen Speicher in zufälligen Adressen zu lesen oder zu schreiben, würde die Speichergrenzen überschreiten, daher alle Fehler beim Fuzzing. Wir könnten die Referenz jedoch speichern, um ihre Verwendung mit diesem Code-Snippet zu ermöglichen:

Es ist wichtig, dies zu berücksichtigen Schwachstellen in Ghostscript sind schwerwiegenderda dieses Paket in vielen gängigen PostScript- und PDF-Verarbeitungsanwendungen verwendet wird. Beispielsweise wird Ghostscript aufgerufen, wenn Sie Miniaturansichten auf dem Desktop erstellen, Daten im Hintergrund indizieren und Bilder konvertieren.

Für einen erfolgreichen Angriff reicht es in vielen Fällen aus, einfach die Exploit-Datei herunterzuladen oder das Verzeichnis damit in Nautilus zu durchsuchen.

Sicherheitslücken in Ghostscript können auch über Bildtreiber ausgenutzt werden Basierend auf den Paketen ImageMagick und GraphicsMagick wird eine JPEG- oder PNG-Datei übergeben, die PostScript-Code anstelle eines Bildes enthält (diese Datei wird in Ghostscript verarbeitet, da der MIME-Typ vom Inhalt erkannt wird und nicht von der Erweiterung abhängt).

Lösung

Das Problem betrifft die Versionen 9.50 bis 9.52 (Der Fehler besteht seit Version 9.28rc1, aber laut den Forschern, die die Sicherheitsanfälligkeit identifiziert haben, ist er seit Version 9.50 aufgetreten.)

Zusätzlich zu diesem und wurde bereits in Version 9.52.1 ein Fix vorgeschlagenUpdates wurden veröffentlicht von Patch-Paketen für einige Linux-Distributionen wie Debian, Ubuntu und SUSE.

Während Pakete in RHEL nicht betroffen sind.

Quelle: https://insomniasec.com


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: AB Internet Networks 2008 SL
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.