Graphite-Bibliothek: Wenn Schriftarten zur Sicherheitslücke werden
Mit der Graphite Description Language erstellte Schriften können von Angreifern genutzt werden, um verschiedene Sicherheitslücken in der Graphite-Bibliothek auszunutzen. Fehler im Speichermanagement können dazu führen, dass fremder Code ausgeführt wird.

Mehrere Sicherheitslücken in der Graphite-Bibliothek können von Angreifern ausgenutzt werden, wie Ciscos Talos-Team schreibt. Mit Graphite können sogenannte smarte Schriftarten erstellt werden, also Truetype-Schriftarten mit erweiterter Funktionalität. Dies können bestimmte Sonderzeichen sein, aber auch die Unterstützung für besondere Glyphen oder hebräische Schriftzeichen. Der Fehler tritt in der Verarbeitung der Schriftarten durch die libgraphite-Bibliothek auf, die von vielen populären Anwendungen wie zum Beispiel Firefox und Openoffice genutzt wird.
Angreifer könnten Schriftarten manipulieren und so verschiedene Attacken durchführen, schreibt Talos. Weil Graphite das serverseitige Laden von Schriften unterstützt, könnte eine Webseite mit einem entsprechenden Font präpariert werden, um Angriffe durchzuführen.
Angreifer können Schadcode laden
Eine der Verwundbarkeiten soll es nach Angaben von Talos ermöglichen, Schadcode zu laden. Denn mit einem manipulierten Font kann ein Ausbrechen aus dem eigentlich reservierten Speicherbereich erzwungen werden, weil die Bibliothek einen von der Schriftart übergebenen Wert nicht daraufhin abcheckt, ob dieser wirklich im vorgesehenen Speicherbereich bleibt oder aber darüber hinausgeht. Angreifer könnten daher den Wert ipskip derart manipulieren, dass Code außerhalb des eigentlichen Speicherbereiches ausgeführt wird. Einen entsprechenden Angriff hatte Joshua Drake bereits im vergangenen Jahr bei der Pwn2own-Konferenz vorgestellt.
Außerdem sei libgraphite für einen Buffer Overflow anfällig, weil das Programm die Länge der eingegebenen Bytecodes nicht richtig prüfe. Durch mehrfaches Aufrufen der CNTXTITEM-Items kann ein String erzeugt werden, der unter Umständen länger ist als die eigentlich vorgesehene Länge - ein Out-of-Bound-Write.
Darüber hinaus könne ein Denial-of-Service-Angriff ausgeführt werden, weil einer der Pointer den Wert 0 hat. Wird die Funktion später aufgerufen, würden die Variablen in mFeatureMap nicht korrekt initialisiert, obwohl der Font zunächst ohne Fehler gestartet wird. Wird dann durch den Font die Funktion grmakeseg aufgerufen, würde der Aufruf der SillMap::cloneFeature-Funktion nicht erfolgreich verlaufen, weil mFeatureMap.mdefaultFeatures den Wert Null aufweist.
Eine weitere Schwäche für Denial-of-Service-Angriffe würde außerdem möglicherweise zum Abfluss von Daten führen, schreibt Talos weiter.
Von der Sicherheitslücke betroffen ist nach Angaben von Talos die Version Libgraphite 2-1.2.4. Diese wird von verschiedenen Programmen unter Linux und Windows eingesetzt. Über einen Patch ist derzeit nichts bekannt.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Ich habe mich damit gerade eine Weile befasst um rauszufinden ob Firefox noch betroffen...