CVE-2026-91186
Received Received - Intake

PNG Chunk Reordering Leads to Buffer Overflow in GUIX

Vulnerability report for CVE-2026-91186, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-10-20

Last updated on: 2026-10-20

Assigner: Eclipse Foundation

Description

The PNG chunk reader has no notion of chunk ordering. It records whether an IDAT has been seen and whether a tRNS has already supplied transparency, but nothing prevents an IHDR being read a second time. A PNG carries exactly one IHDR and it is the first chunk. A file that places a second one after IDAT rewrites the image width, height, bit depth and pixel depth *after* the decoded-data buffer has already been allocated and filled from the original values. The pass that reverses the PNG row filters then derives its own extent from the new dimensions and walks the old allocation, moving image bytes past the end of it. The buffer is allocated by GUIX rather than supplied by the caller, so the application has no way to size it defensively. The decoder is compiled in by default.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-10-20
Last Modified
2026-10-20
Generated
2026-10-20
AI Q&A
2026-10-20
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
Eclipse Foundation Eclipse ThreadX - GUIX 0

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-125 The product reads data past the end, or before the beginning, of the intended buffer.
CWE-787 The product writes data past the end, or before the beginning, of the intended buffer.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability involves a flaw in the PNG chunk reader of GUIX (Eclipse ThreadX). The decoder does not validate the order of PNG chunks, allowing a duplicate IHDR chunk to appear after an IDAT chunk. This second IHDR overwrites image dimensions after memory allocation, causing the unfiltering process to miscalculate buffer sizes and write beyond allocated memory.

Detection Guidance

The vulnerability can be detected by checking the GUIX version in use. If the version is below 6.5.2.202603, the system is vulnerable. Commands like 'guix --version' or inspecting the library version in use can help identify exposure.

Impact Analysis

Exploiting this vulnerability could corrupt adjacent memory or crash the system by decoding a maliciously crafted PNG file. It may lead to data corruption, denial of service, or potential remote code execution if the PNG is obtained remotely without user interaction.

Mitigation Strategies

Upgrade GUIX to version 6.5.2.202603 or later, which includes validation to reject invalid chunk orders. Alternatively, disable the software decoder by setting the environment variable GX_DISABLE_SOFTWARE_DECODER_SUPPORT.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-91186. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart