# CVE-2026-33636: LIBPNG has ARM NEON Palette Expansion Out-of-Bounds Read on AArch64

> An out-of-bounds read and write in libpng's ARM NEON palette expansion allows attackers to execute code or cause denial of service via crafted PNG files.

- **Severity:** High 7.6 (`CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:H`)
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Over the internet
- **Victim action needed:** A user has to click or open something
- **Fix available:** Yes
- **Published:** 26 Mar 2026
- **Updated:** 26 Mar 2026
- **Also known as:** A-496616027, ALPINE-CVE-2026-33636, ALSA-2026:14790, ALSA-2026:14791, ASB-A-496616027, AZL-80993, AZL-81312, AZL-81348, BELL-CVE-2026-33636, CLEANSTART-2026-UY34738, DEBIAN-CVE-2026-33636, ECHO-42f8-ed7b-d9f3, GHSA-wjr5-c57x-95m2, JLSEC-2026-96, MINI-7h7v-xhfw-78q6, RHSA-2026:14790, RHSA-2026:14791, RHSA-2026:17524, RHSA-2026:17567, RHSA-2026:17603, RHSA-2026:17642, RHSA-2026:17685, RLSA-2026:14790, RLSA-2026:14791, ROOT-OS-ALPINE-315-CVE-2026-33636, UBUNTU-CVE-2026-33636

## What is CVE-2026-33636?

CVE-2026-33636 is a high-severity memory corruption vulnerability in Libpng Libpng, published on 26 Mar 2026. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.

### Official 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.

Weakness: CWE-787 (Out-of-bounds Write), CWE-125 (Out-of-bounds Read)

## Which versions are affected by CVE-2026-33636?

It affects 1 product.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `libpng` | AlmaLinux:10 | All versions | 2:1.6.40-8.el10_1.3 |
| `libpng-devel` | AlmaLinux:10 | All versions | 2:1.6.40-8.el10_1.3 |
| `libpng` | AlmaLinux:9 | All versions | 2:1.6.37-12.el9_7.3 |
| `libpng-devel` | AlmaLinux:9 | All versions | 2:1.6.37-12.el9_7.3 |
| `libpng` | Red Hat:enterprise_linux:10.1 | All versions | 2:1.6.40-8.el10_1.3 |
| `libpng-debuginfo` | Red Hat:enterprise_linux:10.1 | All versions | 2:1.6.40-8.el10_1.3 |
| `libpng-debugsource` | Red Hat:enterprise_linux:10.1 | All versions | 2:1.6.40-8.el10_1.3 |
| `libpng-devel` | Red Hat:enterprise_linux:10.1 | All versions | 2:1.6.40-8.el10_1.3 |
| `libpng-devel-debuginfo` | Red Hat:enterprise_linux:10.1 | All versions | 2:1.6.40-8.el10_1.3 |
| `libpng-tools-debuginfo` | Red Hat:enterprise_linux:10.1 | All versions | 2:1.6.40-8.el10_1.3 |
| `libpng` | Red Hat:enterprise_linux:9::appstream | All versions | 2:1.6.37-12.el9_7.3 |
| `libpng-debuginfo` | Red Hat:enterprise_linux:9::appstream | All versions | 2:1.6.37-12.el9_7.3 |
| `libpng-debugsource` | Red Hat:enterprise_linux:9::appstream | All versions | 2:1.6.37-12.el9_7.3 |
| `libpng-devel` | Red Hat:enterprise_linux:9::appstream | All versions | 2:1.6.37-12.el9_7.3 |
| `libpng-devel-debuginfo` | Red Hat:enterprise_linux:9::appstream | All versions | 2:1.6.37-12.el9_7.3 |
| `libpng-tools-debuginfo` | Red Hat:enterprise_linux:9::appstream | All versions | 2:1.6.37-12.el9_7.3 |
| `libpng` | Red Hat:enterprise_linux:9::baseos | All versions | 2:1.6.37-12.el9_7.3 |
| `libpng-debuginfo` | Red Hat:enterprise_linux:9::baseos | All versions | 2:1.6.37-12.el9_7.3 |
| `libpng-debugsource` | Red Hat:enterprise_linux:9::baseos | All versions | 2:1.6.37-12.el9_7.3 |
| `libpng-devel-debuginfo` | Red Hat:enterprise_linux:9::baseos | All versions | 2:1.6.37-12.el9_7.3 |
| `libpng-tools-debuginfo` | Red Hat:enterprise_linux:9::baseos | All versions | 2:1.6.37-12.el9_7.3 |
| `libpng` | Red Hat:enterprise_linux_eus:10.0 | All versions | 2:1.6.40-8.el10_0.3 |
| `libpng-devel` | Red Hat:enterprise_linux_eus:10.0 | All versions | 2:1.6.40-8.el10_0.3 |
| `libpng` | Red Hat:rhel_e4s:9.0::appstream | All versions | 2:1.6.37-12.el9_0.3 |
| `libpng-devel` | Red Hat:rhel_e4s:9.0::appstream | All versions | 2:1.6.37-12.el9_0.3 |
| `libpng` | Red Hat:rhel_e4s:9.0::baseos | All versions | 2:1.6.37-12.el9_0.3 |
| `libpng` | Red Hat:rhel_e4s:9.2::appstream | All versions | 2:1.6.37-12.el9_2.3 |
| `libpng-devel` | Red Hat:rhel_e4s:9.2::appstream | All versions | 2:1.6.37-12.el9_2.3 |
| `libpng` | Red Hat:rhel_e4s:9.2::baseos | All versions | 2:1.6.37-12.el9_2.3 |
| `libpng` | Red Hat:rhel_eus:9.4::appstream | All versions | 2:1.6.37-12.el9_4.3 |
| `libpng-devel` | Red Hat:rhel_eus:9.4::appstream | All versions | 2:1.6.37-12.el9_4.3 |
| `libpng` | Red Hat:rhel_eus:9.4::baseos | All versions | 2:1.6.37-12.el9_4.3 |
| `libpng` | Red Hat:rhel_eus:9.6::appstream | All versions | 2:1.6.37-12.el9_6.3 |
| `libpng-devel` | Red Hat:rhel_eus:9.6::appstream | All versions | 2:1.6.37-12.el9_6.3 |
| `libpng` | Red Hat:rhel_eus:9.6::baseos | All versions | 2:1.6.37-12.el9_6.3 |
| `libpng` | Rocky Linux:10 | All versions | 2:1.6.40-8.el10_1.3 |
| `libpng` | Rocky Linux:9 | All versions | 2:1.6.37-12.el9_7.3 |

Products: Libpng Libpng.

## How do I fix CVE-2026-33636?

Upgrade to a fixed version.

## Is CVE-2026-33636 being exploited?

There is no known exploitation of CVE-2026-33636 in the wild and no public exploit code.

## Other vulnerabilities in Libpng Libpng

- [CVE-2017-12652](https://insights.sbomify.com/CVE-2017-12652/): Denial of service in n/a (critical 9.8)
- [CVE-2018-14550](https://insights.sbomify.com/CVE-2018-14550/): Out-of-bounds write in libpng (high 8.8)
- [CVE-2026-25646](https://insights.sbomify.com/CVE-2026-25646/): LIBPNG has a heap buffer overflow in png_set_quantize (high 8.3)
- [CVE-2026-33416](https://insights.sbomify.com/CVE-2026-33416/): LIBPNG has use-after-free via pointer aliasing in `png_set_tRNS` and `png_set_PLTE` (high 7.5)
- [CVE-2016-10087](https://insights.sbomify.com/CVE-2016-10087/): Null dereference in n/a (high 7.5)

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2026-33636 and fix it if it is affected.

What it is: CVE-2026-33636 is a high-severity memory corruption vulnerability in Libpng Libpng, published on 26 Mar 2026. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.
Exploitation: There is no known exploitation of CVE-2026-33636 in the wild and no public exploit code.

Affected product: Libpng Libpng. No package-level version data is available, so check the vendor advisory linked from the reference page.

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2026-33636/ (Markdown: https://insights.sbomify.com/CVE-2026-33636/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2026-33636
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-33636
- OSV: https://osv.dev/vulnerability/CVE-2026-33636

---
From sbomify Insights: https://insights.sbomify.com/CVE-2026-33636/
Summaries are generated and may contain mistakes; the official description above is the record.
