Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft PNG with duplicate IHDR after IDAT
-
DeliveryDeliver image to GUIX-based application
-
ExploitVictim loads/renders the PNG
-
ExecutionSecond IHDR rewrites dimensions post-allocation
-
PersistRow-filter pass writes past buffer end
-
ImpactMemory corruption enabling code execution or crash
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that the target application use the GUIX PNG decoder (compiled in by default) and that it be caused to load/render an attacker-supplied PNG file - this is the active user interaction (UI:A) the vector requires. The malicious file must carry a second IHDR chunk positioned after the IDAT chunk so that image width/height/bit-depth/pixel-depth are rewritten after the decode buffer was already allocated and filled from the original IHDR values; the subsequent row-filter-reversal pass then derives a larger extent and walks past the allocation. Because GUIX (not the caller) owns the buffer, the integrating application cannot size it defensively as a mitigation. LIMITING FACTORS: the attack vector is LOCAL (AV:L), not network-remote, and it depends on user/application interaction to open the crafted image (UI:A); it does not require authentication (PR:N) and has low complexity (AC:L/AT:N). |
| Impact | This is a genuine memory-corruption flaw in the Eclipse ThreadX GUIX PNG decoder, but several signals temper its priority. The vendor-supplied CVSS is a 4.0 vector (CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H) scoring 8.4 (High), with low attack complexity and high impact to confidentiality, integrity and availability - consistent with an out-of-bounds write during row-filter reversal that can corrupt adjacent heap/buffer memory. However, the attack vector is LOCAL (AV:L) and requires active user interaction (UI:A): the target application must load/render an attacker-supplied PNG. This is not a remotely-triggerable network flaw despite PR:N (no authentication). No EPSS score, CISA KEV listing, or public POC was provided in the input, so there is no evidence of active exploitation or weaponization. Note a data conflict: the assigned CWE-125 (Out-of-bounds READ, which maps to the 'Information Disclosure' tag) contradicts the description, which clearly describes a WRITE primitive ('moving image bytes past the end of it') - verify the exact primitive with the vendor advisory, as an OOB write is materially more dangerous and better matches VI:H/VA:H. Overall this is a real priority for anyone embedding GUIX's PNG decoder in a workflow that processes untrusted images, but the local vector plus required user interaction place it below internet-facing unauthenticated RCE. |
| Exploit ScenarioDerived | An attacker crafts a malformed PNG containing a second IHDR chunk placed after the IDAT data, then delivers it to a device or application that renders images with GUIX (e.g., via a file, message, or media loaded into an embedded UI). When the application decodes the image, the decoder re-reads image dimensions after the pixel buffer has already been allocated and filled, and the row-filter pass then writes beyond the allocation. No public exploit code was identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 20, 2026
The Eclipse ThreadX GUIX PNG decoder can be driven out of bounds by a crafted PNG that places a second IHDR chunk after IDAT, enabling memory corruption in applications that render attacker-supplied images. Any integration with the GUIX PNG decoder enabled is in scope, since the decoder is compiled in by default, and exploitation is local and requires user/application interaction to open the crafted file. No public exploit was identified at time of analysis; the reporter rates the issue 8.4, and the independent assessment treats it as a local, user-interaction-dependent memory-corruption flaw.
RemediationAI
Use the vendor advisory GHSA-gx8f-4rpc-4fjw (https://github.com/eclipse-threadx/guix/security/advisories/GHSA-gx8f-4rpc-4fjw) to identify and apply the fixed GUIX release; the provided data does not specify an exact patched version, so confirm the first fixed version with the vendor before deployment. If a patched release is not yet available, disable PNG decoding at build time in products that do not require it - side effect: loss of PNG rendering. Where PNG support must remain enabled, add a strict pre-parser that rejects any PNG with more than one IHDR or any IHDR appearing after IDAT before handing the file to GUIX; trade-off: extra CPU/memory for validation and possible rejection of malformed files. Restricting GUIX PNG decoding to trusted image assets and treating untrusted PNGs as hostile until patched are additional compensating controls.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The PNG format requires exactly one IHDR as the first chunk; IDAT carries compressed image data and tRNS supplies transparency. GUIX's chunk reader tracks IDAT and tRNS but does not reject a second IHDR, so a file can place a new IHDR after IDAT and rewrite width, height, bit depth, and pixel depth after GUIX has already allocated and filled the decoded-data buffer using the original header values. The subsequent row-filter-reversal (defilter) pass derives its extent from the new dimensions and walks the old allocation out of bounds, matching CWE-125 (out-of-bounds read) with reported buffer-overflow and information-disclosure effects. Because GUIX owns the buffer rather than the caller, the integrating application cannot size it defensively; the decoder is default-enabled. Reporter vector is CVSS 4.0 AV:L/AC:L/AT:N/PR:N/UI:A with a score of 8.4; the independent assessment maps this to CVSS 3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H.
Know when Eclipse Threadx Guix gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Local file parsing requires the victim to open a crafted PNG (AV:L, UI:R), needs no auth (PR:N); an out-of-bounds write yields high C/I/A via potential code execution, scope unchanged.
Primary rating from Vendor (eclipse).
CVSS VectorVendor: eclipse
DescriptionCVE.org
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.
Technical POC Analysis
CWE-125 (out-of-bounds read) is the CWE assigned in the header, and the advisory also files it under CWE-787; the advisory's own mechanism description is a heap out-of-bounds write performed by the f…
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Eclipse ThreadX GUIX's PNG decoder, which is compiled in by default, can be driven into memory corruption by a crafted PNG containing a second IHDR chunk after IDAT, putting any product that renders untrusted images at risk. Because no vendor patch is available and the decoder is commonly enabled by default, embedded and device product teams-not just IT-must treat this as a release-blocking quality and safety issue. Leadership should care because affected devices may be customer-facing or safety-relevant, and exploitation requires only local user or application interaction with a malicious file; no public exploit was identified at time of analysis.
No vendor-released patch identified at time of analysis. Interim mitigations: compile out or disable the GUIX PNG decoder where PNG rendering is not required; reject PNGs with multiple IHDR chunks or IHDR appearing after IDAT before decoding; pre-process or sanitize images through a trusted converter; isolate rendering in a constrained process; restrict ingestion to trusted sources and require user confirmation for external images; monitor for crashes or anomalous behavior in image-rendering paths.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
More in Eclipse Threadx Guix
View allHeap-based out-of-bounds write in the Eclipse ThreadX GUIX binary resource (font) loader: a font page header declaring f
Truncated JPEG marker segments and a zero chroma sampling factor in Eclipse ThreadX GUIX's software JPEG decoder can tri
An out-of-bounds read in the Eclipse ThreadX GUIX JPEG software decoder lets a crafted JPEG file expose memory beyond an
Out-of-bounds reads in Eclipse ThreadX GUIX can expose adjacent memory or terminate the application when gx_binres_theme
Out-of-bounds write in the Eclipse ThreadX GUIX binary resource theme loader lets an attacker who supplies a crafted GUI
Eclipse GUIX multi-line text view rendering can read one byte past the end of an application text buffer when the displa
EUVD-2026-105034
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB