Bug 2451805 (CVE-2026-33416) - CVE-2026-33416 libpng: libpng: Arbitrary code execution due to use-after-free vulnerability
Summary: CVE-2026-33416 libpng: libpng: Arbitrary code execution due to use-after-free...
Keywords:
Status: NEW
Alias: CVE-2026-33416
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Product Security DevOps Team
QA Contact:
URL:
Whiteboard:
Depends On: 2452135 2452136 2452137 2452138 2452139 2452140 2452141 2452142 2452143 2452144 2452145 2452146 2452148 2452149 2452150 2452151 2452152 2452153 2452154 2452155 2452156 2452157 2452159 2452147 2452158
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-03-26 18:02 UTC by OSIDB Bzimport
Modified: 2026-03-27 08:08 UTC (History)
18 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)

Description OSIDB Bzimport 2026-03-26 18:02:19 UTC
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.


Note You need to log in before you can comment on or make changes to this bug.