CVE-2026-32814 in libheif
Zusammenfassung
von VulDB • 19.05.2026
libheif ist ein Decoder und Encoder für das HEIF- und AVIF-Dateiformat. In den Versionen 1.21.2 und früheren Versionen führt das Decodieren eines HEIF-Grid-Bildes mit strict_decoding=false (dem Standardwert) dazu, dass ein beschädigter Tile (Kachel) stillschweigend nicht decodiert wird und die Bibliothek heif_error_Ok zurückgibt, ohne einen Fehler anzuzeigen. Dies führt zu einem Leak von Informationen aus nicht initialisiertem Heap-Speicher. Die Canvas wird über create_clone_image_at_new_size() → plane.alloc() → new (std::nothrow) uint8_t[allocation_size] allokiert, was den Speicher nicht mit Nullen füllt; nur die Alpha-Ebene wird explizit über fill_plane() initialisiert, sodass die Y-, Cb- und Cr-Ebenen beliebige Daten enthalten, die sich zuvor an dieser Heap-Adresse befanden. Der Bereich der Canvas, der dem fehlgeschlagenen Tile entspricht, wird niemals beschrieben. Er behält nicht initialisierte Heap-Daten bei, die dem Aufrufer als decodierte Pixelwerte geliefert werden (4.096 Bytes pro Y-/Cb-/Cr-Ebene = insgesamt 12.288+ Bytes). Jede Anwendung, die libheif zum Decodieren von grid-basierten HEIF/AVIF-Dateien mit Standardeinstellungen verwendet, ist anfällig: Eine speziell angefertigte .heic- oder .avif-Datei bewirkt, dass 4.096+ Bytes Heap-Speicher als Pixelwerte im decodierten Bild erscheinen, und die aufrufende Anwendung erhält heif_error_Ok, sodass sie keinen Hinweis darauf erhält, dass die Ausgabe Heap-Garbage enthält. Bei der serverseitigen Bildverarbeitung kann ein hochgeladenes, speziell angefertigtes HEIF-Bild, das decodiert und neu codiert wird (z. B. als PNG/JPEG für Thumbnails, CDN oder soziale Medien), Cross-User-Daten wie Authentifizierungstokens, Datenbankergebnisse und Bilddaten anderer Benutzer lecken. Dieses Problem wurde in Version 1.22.0 behoben.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.