Description
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.
Published: 2026-03-26
Score: 7.6 High
EPSS: < 1% Very Low
KEV: No
Impact: Memory corruption (out-of-bounds read/write)
Action: Patch immediately
AI Analysis

Impact

The vulnerability lies in libpng’s ARM/AArch64 NEON-optimized palette expansion routine. When converting 8-bit paletted rows to RGB or RGBA, the Neon loop processes a final partial chunk without checking that enough input pixels remain. Because the routine works backwards from the end of the row, the loop dereferences pointers before the start of the row buffer, causing an out-of-bounds read, and subsequently writes expanded pixel data to the same underflowed positions, leading to an out-of-bounds write. This memory corruption can allow an attacker to read sensitive data from the process address space or trigger a crash, depending on the context. The weakness is represented by CWE-124, CWE-125, and CWE-787.

Affected Systems

The affected product is pnggroup’s libpng reference library. Versions 1.6.36 through 1.6.55 on ARM AArch64 platforms with NEON enabled are vulnerable. Applications that use an affected libpng build—such as image viewers, web servers, or other software that decodes PNG data—are at risk. The issue is fixed in libpng 1.6.56 and later.

Risk and Exploitability

The CVSS v3 score of 7.6 indicates high severity, while the EPSS score of under 1% suggests that exploitation is unlikely but still possible. The vulnerability is not listed in the CISA KEV catalog, implying no confirmed widespread exploitation. An attacker can trigger the flaw by feeding a crafted PNG file to any application that decodes images using the vulnerable libpng and has NEON enabled. Unlike many image-based bugs that only allow crashes, this out-of-bounds read/write can also provide access to process memory, potentially leading to information disclosure or further exploitation. However, the attack requires ARM AArch64 hardware and the NEON optimization path, which limits the attack surface to devices that meet these hardware and configuration conditions.

Generated by OpenCVE AI on April 2, 2026 at 22:16 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Verify the libpng version currently installed.
  • Upgrade libpng to version 1.6.56 or later to eliminate the vulnerable code.
  • Rebuild or redeploy any applications that link against the updated libpng.
  • If immediate upgrade is not possible, consider disabling NEON-optimized palette expansion or running the application on a platform without NEON support.
  • Monitor logs for anomalous crashes or memory access violations that may indicate exploitation attempts.

Generated by OpenCVE AI on April 2, 2026 at 22:16 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4521-1 libpng1.6 security update
Debian DSA Debian DSA DSA-6189-1 libpng1.6 security update
History

Thu, 02 Apr 2026 20:30:00 +0000

Type Values Removed Values Added
First Time appeared Libpng
Libpng libpng
CPEs cpe:2.3:a:libpng:libpng:*:*:*:*:*:*:*:*
Vendors & Products Libpng
Libpng libpng

Fri, 27 Mar 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-124
References
Metrics threat_severity

None

threat_severity

Moderate


Fri, 27 Mar 2026 08:45:00 +0000

Type Values Removed Values Added
First Time appeared Pnggroup
Pnggroup libpng
Vendors & Products Pnggroup
Pnggroup libpng

Thu, 26 Mar 2026 19:15:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 26 Mar 2026 17:15:00 +0000

Type Values Removed Values Added
Description 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.
Title LIBPNG has ARM NEON Palette Expansion Out-of-Bounds Read on AArch64
Weaknesses CWE-125
CWE-787
References
Metrics cvssV3_1

{'score': 7.6, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:H'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-03-26T18:45:26.631Z

Reserved: 2026-03-23T14:24:11.619Z

Link: CVE-2026-33636

cve-icon Vulnrichment

Updated: 2026-03-26T18:45:23.887Z

cve-icon NVD

Status : Analyzed

Published: 2026-03-26T17:16:41.477

Modified: 2026-04-02T18:42:02.667

Link: CVE-2026-33636

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-03-26T16:51:58Z

Links: CVE-2026-33636 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-04-03T09:38:58Z

Weaknesses