CVE-2026-33636: high-severity vulnerability in pnggroup libpng
LIBPNG has ARM NEON Palette Expansion Out-of-Bounds Read on AArch64
Published
E-mail alert when it lands in KEV, gets a public PoC or its score goes up.
21Vexday Risk Score
No sign of exploitation. No public exploitation artifact known so far.
ssvc Trackcvss 7.6epss 0.8%
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.
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:H
Affected products
pnggroup · libpngRelated CVEs — pnggroup libpng
In the same product, most dangerous first.
CVE-2026-25646HIGHLIBPNG has a heap buffer overflow in png_set_quantizeEPSS 1.1%CVE-2026-33416HIGHLIBPNG has use-after-free via pointer aliasing in `png_set_tRNS` and `png_set_PLTE`EPSS 1.1%CVE-2025-64720HIGHLIBPNG is vulnerable to a buffer overflow in `png_image_read_composite` via incorrect palette premultiplicationEPSS 0.4%CVE-2025-66293HIGHLIBPNG has an out-of-bounds read in png_image_read_compositeEPSS 0.4%CVE-2025-65018HIGHLIBPNG is vulnerable to a heap buffer overflow in `png_combine_row` triggered via `png_image_finish_read`EPSS 0.3%CVE-2026-22695MEDIUMLIBPNG has a heap buffer over-read in png_image_read_direct_scaled (regression from CVE-2025-65018 fix)EPSS 0.2%