CVE-2026-33416
EUVD-2026-1625826.03.2026, 17:16
LIBPNG is a reference library for use in applications that read, create, and manipulate PNG (Portable Network Graphics) raster image files. In versions 1.2.1 through 1.6.55, `png_set_tRNS` and `png_set_PLTE` each alias a heap-allocated buffer between `png_struct` and `png_info`, sharing a single allocation across two structs with independent lifetimes. The `trans_alpha` aliasing has been present since at least libpng 1.0, and the `palette` aliasing since at least 1.2.1. Both affect all prior release lines `png_set_tRNS` sets `png_ptr->trans_alpha = info_ptr->trans_alpha` (256-byte buffer) and `png_set_PLTE` sets `info_ptr->palette = png_ptr->palette` (768-byte buffer). In both cases, calling `png_free_data` (with `PNG_FREE_TRNS` or `PNG_FREE_PLTE`) frees the buffer through `info_ptr` while the corresponding `png_ptr` pointer remains dangling. Subsequent row-transform functions dereference and, in some code paths, write to the freed memory. A second call to `png_set_tRNS` or `png_set_PLTE` has the same effect, because both functions call `png_free_data` internally before reallocating the `info_ptr` buffer. Version 1.6.56 fixes the issue.Enginsight
Affected Products (NVD)
| Vendor | Product | Version |
|---|---|---|
| libpng | libpng | 1.2.1 ≤ 𝑥 < 1.6.56 |
𝑥
= Vulnerable software versions
Debian Releases
openSUSE / SLES Releases
openSUSE Product | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| libpng12-0 |
| ||||||||||||||||||||
| libpng12-0-32bit |
| ||||||||||||||||||||
| libpng12-compat-devel |
| ||||||||||||||||||||
| libpng12-devel |
| ||||||||||||||||||||
| libpng15-15 |
| ||||||||||||||||||||
| libpng16-16 |
| ||||||||||||||||||||
| libpng16-16-32bit |
| ||||||||||||||||||||
| libpng16-compat-devel |
| ||||||||||||||||||||
| libpng16-devel |
|
Red Hat Enterprise Linux Releases
Red Hat Product | |||
|---|---|---|---|
| firefox |
| ||
| firefox-x11 |
| ||
| java-25-openjdk |
| ||
| java-25-openjdk-crypto-adapter |
| ||
| java-25-openjdk-crypto-adapter-fastdebug |
| ||
| java-25-openjdk-crypto-adapter-slowdebug |
| ||
| java-25-openjdk-demo |
| ||
| java-25-openjdk-demo-fastdebug |
| ||
| java-25-openjdk-demo-slowdebug |
| ||
| java-25-openjdk-devel |
| ||
| java-25-openjdk-devel-fastdebug |
| ||
| java-25-openjdk-devel-slowdebug |
| ||
| java-25-openjdk-fastdebug |
| ||
| java-25-openjdk-headless |
| ||
| java-25-openjdk-headless-fastdebug |
| ||
| java-25-openjdk-headless-slowdebug |
| ||
| java-25-openjdk-javadoc |
| ||
| java-25-openjdk-javadoc-zip |
| ||
| java-25-openjdk-jmods |
| ||
| java-25-openjdk-jmods-fastdebug |
| ||
| java-25-openjdk-jmods-slowdebug |
| ||
| java-25-openjdk-slowdebug |
| ||
| java-25-openjdk-src |
| ||
| java-25-openjdk-src-fastdebug |
| ||
| java-25-openjdk-src-slowdebug |
| ||
| java-25-openjdk-static-libs |
| ||
| java-25-openjdk-static-libs-fastdebug |
| ||
| java-25-openjdk-static-libs-slowdebug |
| ||
| thunderbird |
|
Common Weakness Enumeration
Vulnerability Media Exposure
References