CVE-2026-91159
Discourse es una plataforma de debate de código abierto. Antes de las versiones 2026.9.0, 2026.8.1, 2026.7.3 y 2026.1.9, el procesamiento de oEmbed trataba como confiable un fragmento HTML completo controlado por el atacante cuando el fragmento contenía un iframe cuyo origen coincidía con la lista de permitidos configurada.
Leer descripción completaMostrar menos
Un usuario con permiso para publicar que controlara una página web pública y su respuesta oEmbed podía combinar un iframe permitido con HTML o CSS hermano no relacionado, provocando que aparecieran superposiciones visuales almacenadas u otro contenido con estilos en el contenido de las publicaciones, y permitiendo interfaces de usuario engañosas o fraudulentas. La explotación requiere una cuenta con permiso para publicar, el control de la página web recuperada y de la respuesta oEmbed, y un origen de iframe incluido en la lista de permitidos. El problema afecta a la integridad del contenido, pero no expone datos restringidos, no interrumpe la disponibilidad ni requiere interacción con la Política de Seguridad de Contenido de Discourse. Este problema está corregido en las versiones 2026.9.0, 2026.8.1, 2026.7.3 y 2026.1.9.
Traducción automática del texto original de NVD (en inglés).
CVSS
- Puntuación base
- 7.7
- Versión
- 3.1
- Vector
- CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:N
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días
- 0.43 %
- Percentil entre todas las CVEs puntuadas
- 37
- Fecha de la puntuación
- 20/10/2026
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).
Exploits públicos
Hay código de explotación o plantillas de detección públicos. No es lo mismo que explotación activa confirmada (KEV), pero aumenta el riesgo: parchee con prioridad.
- Prueba de concepto en GitHub (no verificada) · Lista de pruebas de concepto en GitHub
⚠️ Las pruebas de concepto de GitHub no están verificadas: algunas son falsas o contienen malware. No las ejecute nunca fuera de un laboratorio aislado.
Técnicas ATT&CK
Cómo se explota esta vulnerabilidad y qué consigue el atacante, en el lenguaje de MITRE ATT&CK.
- Explotación
T1190Exploit Public-Facing Applicationinitial access60 % - Impacto principal
T1059.007JavaScriptexecution55 %
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-79
Referencias
Mostrar las 5 referencias
- https://github.com/discourse/discourse/commit/0953b31f5c2949d7d6ab5f6dc4c5e2f1b8bf0b22
- https://github.com/discourse/discourse/commit/3fc2bad6cdca47b00958330d1ee612aa141b039a
- https://github.com/discourse/discourse/commit/dde8bc4fb6200139f5eff7e100b0f3e829d37ab3
- https://github.com/discourse/discourse/commit/ed6f83f123d1a4c6c6c7e64c8a2233e3cb6a28d7
- https://github.com/discourse/discourse/security/advisories/GHSA-f9jx-vv33-4282
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-91159",
"cveTags": [],
"metrics": {
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-91159",
"role": "CISA Coordinator",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"version": "2.0.3",
"timestamp": "2026-10-20T01:33:46.177897Z"
}
}
],
"cvssMetricV31": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"cvssData": {
"scope": "CHANGED",
"version": "3.1",
"baseScore": 7.7,
"attackVector": "NETWORK",
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:N",
"integrityImpact": "HIGH",
"userInteraction": "NONE",
"attackComplexity": "LOW",
"availabilityImpact": "NONE",
"privilegesRequired": "LOW",
"confidentialityImpact": "NONE"
},
"impactScore": 4,
"exploitabilityScore": 3.1
}
]
},
"affected": [
{
"source": "security-advisories@github.com",
"affectedData": [
{
"vendor": "discourse",
"product": "discourse",
"versions": [
{
"status": "affected",
"version": "< 2026.1.9"
},
{
"status": "affected",
"version": ">= 2026.7.0-latest, < 2026.7.3"
},
{
"status": "affected",
"version": ">= 2026.8.0-latest, < 2026.8.1"
},
{
"status": "affected",
"version": ">= 2026.9.0-latest, < 2026.9.0"
}
]
}
]
}
],
"published": "2026-10-14T16:17:56.613",
"references": [
{
"url": "https://github.com/discourse/discourse/commit/0953b31f5c2949d7d6ab5f6dc4c5e2f1b8bf0b22",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/discourse/discourse/commit/3fc2bad6cdca47b00958330d1ee612aa141b039a",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/discourse/discourse/commit/dde8bc4fb6200139f5eff7e100b0f3e829d37ab3",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/discourse/discourse/commit/ed6f83f123d1a4c6c6c7e64c8a2233e3cb6a28d7",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/discourse/discourse/security/advisories/GHSA-f9jx-vv33-4282",
"source": "security-advisories@github.com"
}
],
"vulnStatus": "Deferred",
"weaknesses": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"description": [
{
"lang": "en",
"value": "CWE-79"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "Discourse is an open-source discussion platform. Prior to 2026.9.0, 2026.8.1, 2026.7.3, and 2026.1.9, oEmbed processing treated an entire attacker-controlled HTML fragment as trusted when the fragment contained an iframe whose source matched the configured allowlist. A user with posting permission who controlled a public webpage and its oEmbed response could combine an allowlisted iframe with unrelated sibling HTML or CSS, causing stored visual overlays or other styled content to appear in post content and enabling misleading or fraudulent user interfaces. Exploitation requires a posting account, control of the fetched webpage and oEmbed response, and an allowlisted iframe source. The issue affects content integrity but does not expose restricted data, disrupt availability, or require interaction with Discourse Content Security Policy. This issue is fixed in versions 2026.9.0, 2026.8.1, 2026.7.3, and 2026.1.9."
}
],
"lastModified": "2026-10-20T02:17:13.347",
"sourceIdentifier": "security-advisories@github.com"
}