Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAttacker supplies crafted input to application
-
DeliveryUntrusted value passed to cx() in JSX class attribute
-
Exploitcx() marks output as HTML-safe without escaping
-
ExecutionSSR serializes unescaped metacharacters into HTML response
-
PersistVictim loads the affected page
-
ImpactInjected script or markup executes in victim's browser
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires three concurrent conditions: (1) the application runs Hono version 4.0.0 through 4.12.26; (2) the application uses the cx() function from hono/css within a JSX class attribute during server-side rendering; and (3) at least one argument to cx() is derived from untrusted, attacker-influenced input (e.g., query parameters, user-supplied data, database values not separately sanitized). Exploitation is further limited by the need for user interaction - a victim must load the affected SSR-rendered page (UI:R). Client-side-only Hono deployments that do not perform SSR are not affected. Applications on affected versions that never pass untrusted data to cx() are not exploitable. Authentication is not required of the attacker (PR:N); the attacker need only be able to influence an input that flows into cx(). |
| Impact | The CVSS 3.1 vector AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N scoring 6.1 (Medium) is well-calibrated for this vulnerability. The Scope:Changed metric correctly captures that the flaw originates in the server-side rendering pipeline but manifests as impact in the victim's browser context. Low Attack Complexity reflects that standard HTML attribute injection techniques apply once the attacker can influence cx() input. PR:N is justified because the attacker need only supply a crafted input value - no account or privilege is required on the server. The User Interaction requirement (UI:R) is the principal risk reducer: a victim must load the affected page. No EPSS data was provided in the input; no CISA KEV listing exists, and no public POC has been confirmed, suggesting this is not currently under active exploitation. Real-world risk is moderate and context-dependent: applications that never pass untrusted input to cx() are not exploitable even on affected versions, but those that do - for example, reflecting URL parameters or user profile data into class names - face a realistic stored or reflected XSS exposure. Confidentiality and Integrity impacts are Low (session cookie theft, page defacement, phishing injection), and there is no Availability impact. |
| Exploit ScenarioDerived | An attacker targets a Hono SSR application that reflects a user-controlled value - such as a URL query parameter or stored user preference - into a JSX class attribute via cx(). By supplying a crafted value such as |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 08, 2026
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.
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.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
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.
Know when Hono gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
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
1DescriptionCVE.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.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Improper authorization in Hono's JWT Auth Middleware (hono/jwt in the npm package 'hono', versions 1.1.0 through 4.10.1)
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
Path prefix stripping in Hono's app.mount() API exposes mounted sub-applications to incorrect routing due to a raw-vs-de
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
EUVD-2026-42327
GHSA-w62v-xxxg-mg59
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB