CVE-2026-91186
El lector de fragmentos PNG no tiene noción del orden de los fragmentos. Registra si ya se ha visto un IDAT y si un tRNS ya ha aportado transparencia, pero nada impide que un IHDR se lea una segunda vez.
Un PNG contiene exactamente un IHDR, y es el primer fragmento. Un archivo que coloca un segundo IHDR después de IDAT reescribe el ancho, el alto, la profundidad de bits y la profundidad de píxel de la imagen *después* de que el búfer de datos decodificados ya se haya reservado y llenado con los valores originales. La pasada que revierte los filtros de fila de PNG deriva entonces su propio tamaño a partir de las nuevas dimensiones y recorre la reserva antigua, desplazando bytes de la imagen más allá de su final.
Leer descripción completaMostrar menos
El búfer lo reserva GUIX en lugar de recibirlo de quien llama, por lo que la aplicación no tiene forma de dimensionarlo de manera defensiva. El decodificador viene compilado por defecto.
Traducción automática del texto original de NVD (en inglés).
CVSS
- Puntuación base
- 8.4
- Versión
- 4.0
- Vector
- 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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Probabilidad de explotación (EPSS)
FIRST aún no ha puntuado esta CVE (habitual en CVEs muy recientes o rechazadas).
EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).
Técnicas ATT&CK
Cómo se explota esta vulnerabilidad y qué consigue el atacante, en el lenguaje de MITRE ATT&CK.
- Explotación
T1203Exploitation for Client Executionexecution60 % - Impacto principal
T1059Command and Scripting Interpreterexecution55 %
Inferido por reglas deterministas a partir del vector CVSS y la CWE. Solo orientativo.
Mitigaciones ATT&CK que cubren estas técnicas
Tecnologías afectadas (1)
⚠ Inferidas por IA a partir de la descripción — NVD aún no ha analizado esta CVE; no son CPE verificados.
CWE
- CWE-125, CWE-787
Referencias
Mostrar las 1 referencias
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-91186",
"cveTags": [],
"metrics": {
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-91186",
"role": "CISA Coordinator",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "total"
}
],
"version": "2.0.3",
"timestamp": "2026-10-20T15:28:30.798866Z"
}
}
],
"cvssMetricV40": [
{
"type": "Secondary",
"source": "emo@eclipse.org",
"cvssData": {
"Safety": "NOT_DEFINED",
"version": "4.0",
"Recovery": "NOT_DEFINED",
"baseScore": 8.4,
"Automatable": "NOT_DEFINED",
"attackVector": "LOCAL",
"baseSeverity": "HIGH",
"valueDensity": "NOT_DEFINED",
"vectorString": "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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
"exploitMaturity": "NOT_DEFINED",
"providerUrgency": "NOT_DEFINED",
"userInteraction": "ACTIVE",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"privilegesRequired": "NONE",
"subIntegrityImpact": "NONE",
"vulnIntegrityImpact": "HIGH",
"integrityRequirement": "NOT_DEFINED",
"modifiedAttackVector": "NOT_DEFINED",
"subAvailabilityImpact": "NONE",
"vulnAvailabilityImpact": "HIGH",
"availabilityRequirement": "NOT_DEFINED",
"modifiedUserInteraction": "NOT_DEFINED",
"modifiedAttackComplexity": "NOT_DEFINED",
"subConfidentialityImpact": "NONE",
"vulnConfidentialityImpact": "HIGH",
"confidentialityRequirement": "NOT_DEFINED",
"modifiedAttackRequirements": "NOT_DEFINED",
"modifiedPrivilegesRequired": "NOT_DEFINED",
"modifiedSubIntegrityImpact": "NOT_DEFINED",
"modifiedVulnIntegrityImpact": "NOT_DEFINED",
"vulnerabilityResponseEffort": "NOT_DEFINED",
"modifiedSubAvailabilityImpact": "NOT_DEFINED",
"modifiedVulnAvailabilityImpact": "NOT_DEFINED",
"modifiedSubConfidentialityImpact": "NOT_DEFINED",
"modifiedVulnConfidentialityImpact": "NOT_DEFINED"
}
}
]
},
"affected": [
{
"source": "emo@eclipse.org",
"affectedData": [
{
"vendor": "Eclipse Foundation",
"product": "Eclipse ThreadX - GUIX",
"versions": [
{
"status": "affected",
"version": "0",
"versionType": "semver",
"lessThanOrEqual": "6.5.1.202602a"
},
{
"status": "unaffected",
"version": "6.5.2.202603"
}
],
"packageName": "GUIX",
"defaultStatus": "unaffected"
}
]
}
],
"published": "2026-10-20T15:17:36.023",
"references": [
{
"url": "https://github.com/eclipse-threadx/guix/security/advisories/GHSA-gx8f-4rpc-4fjw",
"source": "emo@eclipse.org"
}
],
"vulnStatus": "Received",
"weaknesses": [
{
"type": "Secondary",
"source": "emo@eclipse.org",
"description": [
{
"lang": "en",
"value": "CWE-125"
},
{
"lang": "en",
"value": "CWE-787"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "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.\n\n\n\nA 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.\n\n\n\nThe 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."
}
],
"lastModified": "2026-10-20T16:17:16.490",
"sourceIdentifier": "emo@eclipse.org"
}