Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-91186— PNG decoder: a duplicate IHDR chunk after IDAT resizes the image after allocation, causing a heap out-of-bounds write

Quick assessment

Affected
Eclipse Foundation Eclipse ThreadX - GUIX
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

PNG 块读取器并不具备块顺序的概念。它仅会记录是否已遇到过 IDAT 块,以及 tRNS 块是否已提供透明度信息,但没有任何机制能阻止 IHDR 块被第二次读取。 PNG 文件必须且只能包含一个 IHDR 块,且该块必须位于文件的最前端。若某个文件在 IDAT 块之后再次插入一个 IHDR 块,则会在图像解码数据缓冲区已根据原始尺寸分配并填充完毕之后,重新改写图像的宽度、高度、位深度和像素深度。随后,负责反转 PNG 行滤波器的处理流程会依据新的尺寸重新计算其作用范围,从而在旧缓冲区中遍历,将图像字节移动至缓冲区

CVSS 8.4 · High

Possible ATT&CK Techniques 1 AI

T1190 · Exploit Public-Facing Application
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-91186

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
PNG decoder: a duplicate IHDR chunk after IDAT resizes the image after allocation, causing a heap out-of-bounds write
Source: CVE Program / CVE List V5
Vulnerability 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.
Source: CVE Program / CVE List V5
CVSS Information
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
Source: CVE Program / CVE List V5
Vulnerability Type
跨界内存读
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
Eclipse Foundation Eclipse ThreadX - GUIX 0 ~ 6.5.1.202602a -

II. Public POCs for CVE-2026-91186

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-91186

请登录查看更多情报信息。

Other References for CVE-2026-91186 (1)

Same Patch Batch · Eclipse Foundation · 2026-10-20 · 29 CVEs total

CVE-2026-113620 9.8 CRITICAL Eclipse ioFog operator WebSocket accepts an unverified JWT
CVE-2026-93475 9.3 CRITICAL Out-of-bounds Write via an Unbounded RSA Modulus in NetX Secure X.509
CVE-2026-94018 8.8 HIGH NetX Duo Web HTTP server releases an uninitialized packet pointer on the PUT Content-Lengt
CVE-2026-92853 8.7 HIGH Out-of-bounds Read via a Zero-length TLS 1.3 Certificate Message in NetX Secure
CVE-2026-92843 8.7 HIGH Out-of-bounds Read via the TLS 1.3 Certificate extensions_length in NetX Secure
CVE-2026-95109 8.5 HIGH Cortex-A7 module data validation checks only the first address of a caller-supplied range
CVE-2026-94192 8.5 HIGH Module object deallocation can free a live ThreadX kernel object
CVE-2026-91041 7.8 HIGH FileX fault-tolerant log replay writes past the destination sector when mounting a crafted
CVE-2026-113619 7.5 HIGH Eclipse ioFog renders request templates before authentication
CVE-2026-91189 7.1 HIGH GUIX binary resource loader: unvalidated glyph range causes an integer underflow and a hea
CVE-2026-95107 7.0 HIGH Module object allocation size overflow corrupts the manager object pool
CVE-2026-93003 6.9 MEDIUM NetX Duo Web HTTP server interprets request body content as HTTP header fields
CVE-2026-108062 6.9 MEDIUM Pre-authentication OIDC discovery and JWKS fetches run synchronously on the asyncio event
CVE-2026-94023 6.9 MEDIUM Module delete dispatchers do not enforce kernel-object ownership before irreversible delet
CVE-2026-94024 6.9 MEDIUM Module Manager object lookup validates one byte of a module's search name
CVE-2026-91059 6.8 MEDIUM JPEG decoder: a duplicate SOF0 after SOS publishes a pixelmap that misreports its own allo
CVE-2026-92449 6.8 MEDIUM Binary resource loader: unbounded map_id from a theme file causes a heap out-of-bounds wri
CVE-2026-92446 6.8 MEDIUM GUIX binary resource loader reads past the end of a resource, because no length for it eve
CVE-2026-95108 6.8 MEDIUM Deleting a user-mode module thread leaks its privileged kernel stack
CVE-2026-97400 6.8 MEDIUM jdmpview / DTFJ reads arbitrary local files and makes arbitrary outbound requests when ope

Showing top 20 of 29 CVEs. View all on vendor page → →

IV. Related Vulnerabilities

V. Comments for CVE-2026-91186

No comments yet


Leave a comment