Eine in libpng seit fast 30 Jahren vorhandene Schwachstelle wurde als potenzielles Risiko für Millionen von Systemen identifiziert.
Die Schwachstelle, ein Heap-Pufferüberlauf, kann zum Absturz von Anwendungen führen und unter bestimmten Bedingungen bei der Verarbeitung speziell präparierter PNG-Bilder die Ausführung beliebigen Codes ermöglichen.
„Im schlimmsten Fall könnte ein Angreifer bei gezielter Vorbereitung des Heaps bis zu num_palette / 2 Bytes über das Ende der index_to_palette- und palette_to_index-Puffer hinaus lesen und schreiben, was möglicherweise zur Offenlegung von Informationen oder zur Ausführung beliebigen Codes führt“, sagten die Forscher.
Funktionsweise der Libpng-Schwachstelle
Libpng ist die offizielle PNG-Referenzbibliothek und wird umfassend in Betriebssysteme, Browser, Grafikanwendungen und eingebettete Geräte integriert.
Aufgrund dieser weitreichenden Integration können Schwachstellen in libpng erhebliche Auswirkungen auf nachgelagerte Systeme haben.
Die Schwachstelle (CVE-2026-25646) besteht seit der ursprünglichen Implementierung der betroffenen Funktion – sie hieß damals png_set_dither() –; damit sind alle historischen Versionen von libpng betroffen.
Die Schwachstelle ist ein Heap-Pufferüberlauf in der Funktion png_set_quantize(), die die Anzahl der Farben in einem Bild reduziert, damit sie den Einschränkungen des Anzeigegeräts entspricht.
Die Schwachstelle geht auf einen Logikfehler bei der Verarbeitung von Farbindizes während der Quantisierung zurück.
Sie wird ausgelöst, wenn ein PNG-Bild einen PLTE- (Palette-)Chunk, aber keinen hIST- (Histogramm-)Chunk enthält, die aufrufende Anwendung eine Farbquantisierung anfordert und die Palette mehr als doppelt so viele Farben enthält, wie das Display des Benutzers unterstützt.
Wichtig ist, dass all diese Bedingungen gemäß der PNG-Spezifikation zulässig sind. Ein bösartiges Bild muss also keine Formatregeln verletzen, um den Fehler auszunutzen.
Intern erstellt die Funktion eine Hashtabelle, die ähnliche Farben anhand eines Farbabstandsmaßes gruppiert.
Der Fehler tritt auf, weil der Code beim Befüllen dieser Tabelle die aktuellen Farbindizes speichert, sie bei der späteren Validierung jedoch als ursprüngliche Indizes behandelt.
Diese Abweichung verhindert, dass der Algorithmus Paletteneinträge ordnungsgemäß entfernt, und führt dazu, dass er in eine Endlosschleife gerät.
Während die Schleife weiterläuft, wird die Suchvariable max_d über die feste Größe der Hashtabelle von 769 Zeigern hinaus erhöht, wodurch Lesezugriffe hinter das Ende eines heap-allokierten Puffers erzwungen werden.
Im wahrscheinlichsten Szenario führt dies zu einem deterministischen Denial-of-Service-Absturz, wenn die Anwendung eine präparierte PNG-Datei verarbeitet.
Die Forscher merkten jedoch an, dass Angreifer bei sorgfältiger Vorbereitung des Heaps möglicherweise bis zu num_palette / 2 Bytes über zugewiesene Puffer hinaus lesen oder schreiben können, wodurch die Offenlegung von Informationen oder die Ausführung beliebigen Codes möglich wird.
Für die Schwachstelle wurde bereits ein Proof of Concept veröffentlicht.
Risiken durch die Libpng-Schwachstelle reduzieren
Organisationen sollten diese Schwachstelle sowohl als Patch- als auch als umfassenderes Lieferkettenrisiko betrachten.
Da libpng umfassend in Anwendungen und Plattformen integriert ist, erfordert die Behebung Transparenz über Abhängigkeiten und Schutzmaßnahmen zur Laufzeit.
- Aktualisieren auf libpng-Version 1.6.55, bauen Sie betroffene Anwendungen neu und überprüfen Sie die Versionen der gepatchten Bibliothek auf allen verwalteten Systemen und in allen eingebetteten Bereitstellungen.
- Eine umfassende Abhängigkeitsprüfung durchführen, einschließlich einer SBOM-Validierung, um gebündelte oder statisch verknüpfte Versionen von libpng in Software von Drittanbietern und in intern entwickelter Software zu identifizieren.
- Komponenten zur Bildverarbeitung isolieren und in einer Sandbox ausführen, insbesondere bei internetseitig erreichbaren oder benutzerinitiierten Upload-Workflows, um den möglichen Schadensradius einer Ausnutzung zu begrenzen.
- Compiler- und Laufzeitschutzmechanismen für den Speicher wie ASLR aktivieren, Stack-Canaries und die Exploit-Erkennung auf Endgeräten einsetzen, um die Wahrscheinlichkeit erfolgreicher Heap-Korruptionsangriffe zu verringern.
- Bild-Uploads durch serverseitige Dateiprüfungen beschränken und validieren, PNG-Dateien neu kodieren oder bereinigen und nicht benötigte Quantisierungsfunktionen nach Möglichkeit deaktivieren.
- Die Überwachung auf ungewöhnliches Verhalten bei der PNG-Analyse verbessern, ebenso auf Anwendungsabstürze oder verdächtige Speicheraktivität im Zusammenhang mit Bildverarbeitungsdiensten.
- Mit Incident-Response-Plänen durch Planspiele testen rund um anfällige Bibliotheken von Drittanbietern.
Diese Maßnahmen tragen dazu bei, die Gefährdung zu begrenzen und die Widerstandsfähigkeit zu stärken.
CVE-2026-25646 verdeutlicht das anhaltende Risiko in weithin vertrauenswürdigen Open-Source-Komponenten und die systemische Gefährdung durch tief integrierte Bibliotheken.
Eine jahrzehntelang unentdeckte Schwachstelle in einer zentralen Bibliothek zur Bildverarbeitung unterstreicht die Notwendigkeit kontinuierlicher Transparenz über Abhängigkeiten und einer disziplinierten Update-Governance.
Architekturen nach dem Zero-Trust-Modell, die davon ausgehen, dass keiner Komponente – weder intern noch extern – grundsätzlich vertraut werden sollte.





