Severity by source
AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Scope:Changed because SSR injection crosses to victim browser; PR:N as attacker only supplies untrusted input; UI:R since victim must load the rendered page; no availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2Blast Radius
ecosystem impact- 1 npm packages depend on hono (1 direct, 0 indirect)
Ecosystem-wide dependent count for version 4.0.0.
DescriptionCVE.org
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.
AnalysisAI
Server-side rendering XSS in Hono's hono/css module (versions 4.0.0 through 4.12.26) allows injection of arbitrary HTML markup by exploiting the cx() function's failure to HTML-escape input before marking it as safe. When untrusted data flows into a cx() call used in a JSX class attribute during SSR, attackers can break out of the attribute context and inject arbitrary markup or script into the rendered page delivered to victims. No public exploit code or CISA KEV listing has been identified at time of analysis; the CVSS 6.1 Medium score with Scope:Changed reflects the cross-context server-to-browser impact.
Technical ContextAI
Hono (CPE: cpe:2.3:a:honojs:hono:*:*:*:*:*:*:*:*) is a lightweight web framework designed to run across multiple JavaScript runtimes (Cloudflare Workers, Deno, Bun, Node.js, etc.). The hono/css module exposes a cx() utility for composing CSS class name strings in JSX components. During server-side rendering, Hono serializes JSX to HTML and relies on an internal escaping pipeline to sanitize dynamic values. The root cause (CWE-79: Improper Neutralization of Input During Web Page Generation) is that cx() prematurely marks its composed output as already-escaped - bypassing the escaping pipeline - without first sanitizing the input strings. If any argument to cx() contains HTML metacharacters such as quotes or angle brackets, they pass through to the serialized HTML verbatim, enabling attribute breakout and injection of arbitrary content into the victim's browser.
RemediationAI
Upgrade Hono to version 4.12.27 or later, which resolves the improper escaping in cx() per the GitHub release at https://github.com/honojs/hono/releases/tag/v4.12.27. The specific fix is available in commit cd3f6f7194f0e5c9d4b26ae0cf232018d0f388fc (https://github.com/honojs/hono/commit/cd3f6f7194f0e5c9d4b26ae0cf232018d0f388fc). If an immediate upgrade is not feasible, the most effective compensating control is to audit all call sites of cx() in JSX class attributes and ensure no untrusted or user-controlled data is passed as an argument - replacing such patterns with explicit allow-list validation or manual HTML encoding before the value reaches cx(). Note that manual escaping is error-prone and introduces maintenance burden; it should be treated as a temporary measure only. Upgrading to 4.12.27 is the authoritative fix.
The adapter @hono/node-server allows you to run your Hono application on Node.js. Rated high severity (CVSS 7.5), this v
Hono, a web framework, prior to version 4.6.5 is vulnerable to bypass of cross-site request forgery (CSRF) middleware by
Quadratic-complexity denial of service in Hono's `languageDetector` middleware (versions 4.12.0-4.12.33) allows unauthen
Hono is a Web application framework that provides support for any JavaScript runtime. Rated medium severity (CVSS 5.3),
@hono/node-server is an adapter that allows users to run Hono applications on Node.js. Rated medium severity (CVSS 5.3),
Hono is a Web application framework that provides support for any JavaScript runtime. Rated medium severity (CVSS 5.0),
Cross-user HTML disclosure in Hono's server-side rendering affects all applications using hono/jsx with memo()-wrapped c
Hono is a web framework written in TypeScript. Rated medium severity (CVSS 4.3), this vulnerability is remotely exploita
Hono is a Web application framework that provides support for any JavaScript runtime. [CVSS 8.2 HIGH]
Hono versions before 4.11.4 allow JWT algorithm confusion attacks through improper algorithm validation in the JWK/JWKS
Hono before version 4.11.4 contains a JWT algorithm confusion vulnerability in its JWK/JWKS verification middleware that
Hono's `proxy()` function in the `hono/proxy` Proxy Helper leaks connection-scoped response headers to downstream client
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allVendor StatusVendor
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-42327
GHSA-w62v-xxxg-mg59