CVE-2026-33636

LIBPNG is a reference library for use in applications that read, create, and manipulate PNG (Portable Network Graphics) raster image files. In versions 1.6.36 through 1.6.55, an out-of-bounds read and write exists in libpng's ARM/AArch64 Neon-optimized palette expansion path. When expanding 8-bit paletted rows to RGB or RGBA, the Neon loop processes a final partial chunk without verifying that enough input pixels remain. Because the implementation works backward from the end of the row, the final iteration dereferences pointers before the start of the row buffer (OOB read) and writes expanded pixel data to the same underflowed positions (OOB write). This is reachable via normal decoding of attacker-controlled PNG input if Neon is enabled. Version 1.6.56 fixes the issue.
Configurations

Configuration 1 (hide)

cpe:2.3:a:libpng:libpng:*:*:*:*:*:*:*:*

History

02 Apr 2026, 18:42

Type Values Removed Values Added
First Time Libpng
Libpng libpng
CPE cpe:2.3:a:libpng:libpng:*:*:*:*:*:*:*:*
References () https://github.com/pnggroup/libpng/commit/7734cda20cf1236aef60f3bbd2267c97bbb40869 - () https://github.com/pnggroup/libpng/commit/7734cda20cf1236aef60f3bbd2267c97bbb40869 - Patch
References () https://github.com/pnggroup/libpng/commit/aba9f18eba870d14fb52c5ba5d73451349e339c3 - () https://github.com/pnggroup/libpng/commit/aba9f18eba870d14fb52c5ba5d73451349e339c3 - Patch
References () https://github.com/pnggroup/libpng/security/advisories/GHSA-wjr5-c57x-95m2 - () https://github.com/pnggroup/libpng/security/advisories/GHSA-wjr5-c57x-95m2 - Vendor Advisory, Patch

30 Mar 2026, 13:26

Type Values Removed Values Added
Summary
  • (es) LIBPNG es una biblioteca de referencia para uso en aplicaciones que leen, crean y manipulan archivos de imagen ráster PNG (Portable Network Graphics). En las versiones 1.6.36 a 1.6.55, existe una lectura y escritura fuera de límites en la ruta de expansión de paleta optimizada para Neon de ARM/AArch64 de libpng. Al expandir filas paletizadas de 8 bits a RGB o RGBA, el bucle Neon procesa un fragmento parcial final sin verificar que queden suficientes píxeles de entrada. Debido a que la implementación funciona hacia atrás desde el final de la fila, la iteración final desreferencia punteros antes del inicio del búfer de fila (lectura OOB) y escribe datos de píxeles expandidos en las mismas posiciones de desbordamiento inferior (escritura OOB). Esto es alcanzable a través de la decodificación normal de entrada PNG controlada por el atacante si Neon está habilitado. La versión 1.6.56 corrige el problema.

26 Mar 2026, 17:16

Type Values Removed Values Added
New CVE

Information

Published : 2026-03-26 17:16

Updated : 2026-04-02 18:42


NVD link : CVE-2026-33636

Mitre link : CVE-2026-33636

CVE.ORG link : CVE-2026-33636


JSON object : View

Products Affected

libpng

  • libpng
CWE
CWE-125

Out-of-bounds Read

CWE-787

Out-of-bounds Write