CVE-2026-59895
Full vulnerability record from the local CVENow database.
Description
Hono is a Web application framework that provides support for any JavaScript runtime. From 4.0.0 before 4.12.27, cx() in hono/css composes class names from plain strings but marks the result as already escaped without HTML-escaping the input, allowing untrusted className values used in a JSX class attribute during server-side rendering to break out of the attribute and inject arbitrary markup. This issue is fixed in version 4.12.27.
Severity
MEDIUM
CVSS score
6.1
(v3.1)
Vulnerability status
Analyzed
Source identifier
Published
2026-07-08 17:17:27.353000
Last modified
2026-10-25 17:10:00.197000
View original CVE JSON
{
"id": "CVE-2026-59895",
"sourceIdentifier": "[email protected]",
"published": "2026-07-08T17:17:27.353",
"lastModified": "2026-10-25T17:10:00.197",
"vulnStatus": "Analyzed",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "Hono is a Web application framework that provides support for any JavaScript runtime. From 4.0.0 before 4.12.27, cx() in hono/css composes class names from plain strings but marks the result as already escaped without HTML-escaping the input, allowing untrusted className values used in a JSX class attribute during server-side rendering to break out of the attribute and inject arbitrary markup. This issue is fixed in version 4.12.27."
},
{
"lang": "es",
"value": "Hono es un framework de aplicación web que proporciona soporte para cualquier entorno de ejecución de JavaScript. Desde la versión 4.0.0 hasta la 4.12.27, cx() en hono/css compone nombres de clase a partir de cadenas de texto simples pero marca el resultado como ya escapado sin escapar la entrada en HTML, permitiendo que valores de className no confiables utilizados en un atributo de clase JSX durante la renderización del lado del servidor rompan el atributo e inyecten marcado arbitrario. Este problema está solucionado en la versión 4.12.27."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "honojs",
"product": "hono",
"versions": [
{
"version": ">= 4.0.0, < 4.12.27",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV31": [
{
"source": "[email protected]",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N",
"baseScore": 6.1,
"baseSeverity": "MEDIUM",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "NONE",
"userInteraction": "REQUIRED",
"scope": "CHANGED",
"confidentialityImpact": "LOW",
"integrityImpact": "LOW",
"availabilityImpact": "NONE"
},
"exploitabilityScore": 2.8,
"impactScore": 2.7
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-07-08T17:50:18.277447Z",
"id": "CVE-2026-59895",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-79"
},
{
"lang": "en",
"value": "CWE-116"
}
]
}
],
"configurations": [
{
"nodes": [
{
"operator": "OR",
"negate": false,
"cpeMatch": [
{
"vulnerable": true,
"criteria": "cpe:2.3:a:hono:hono:*:*:*:*:*:node.js:*:*",
"versionStartIncluding": "4.0.0",
"versionEndExcluding": "4.12.27",
"matchCriteriaId": "08C4DBB0-9F35-4FF1-8BAF-CACAABAD6057"
}
]
}
]
}
],
"references": [
{
"url": "https://github.com/honojs/hono/commit/cd3f6f7194f0e5c9d4b26ae0cf232018d0f388fc",
"source": "[email protected]",
"tags": [
"Patch"
]
},
{
"url": "https://github.com/honojs/hono/releases/tag/v4.12.27",
"source": "[email protected]",
"tags": [
"Release Notes"
]
},
{
"url": "https://github.com/honojs/hono/security/advisories/GHSA-w62v-xxxg-mg59",
"source": "[email protected]",
"tags": [
"Vendor Advisory"
]
}
]
}