hono/jsx has Unvalidated JSX Tag Names that May Allow HTML Injection
Exact source revision recorded 24 Oct 2026 13:17:17 UTC. It does not establish the source's current position. Latest evidence.
osv · GHSA-69xw-7hcm-h432
Published## Summary Improper handling of JSX element tag names in hono/jsx allowed unvalidated tag names to be directly inserted into the generated HTML output. When untrusted input is used as a tag name via the programmatic `jsx()` or `createElement()` APIs during server-side rendering, specially crafted values may break out of the intended element context and inject unintended HTML. ## Details When rendering JSX elements to HTML strings, attribute values are escaped and attribute names are validated. However, element tag names were previously inserted into the output without validation. If a tag name contains characters such as `<`, `>`, quotes, or whitespace, it may alter the structure of the generated HTML. For example, malformed tag names can: * Break out of the intended element and introduce unintended HTML elements * Inject attributes or event handlers into the rendered output This issue arises when untrusted input (such as query parameters or database content) is used as JSX tag names via `jsx()` or `createElement()` during server-side rendering. ## Impact An attacker who can control tag names used in JSX rendering may inject unintended HTML into the generated output. This may lead to: * Injection of unexpected HTML elements or attributes * Corruption of the HTML structure * Cross-site scripting (XSS) when combined with unsafe usage patterns This issue only affects applications that construct JSX tag names from untrusted input. Applications using static or allowlisted tag names are not affected.
- Source published
- 6 May 2026 23:49:43 UTC
- Source modified
- 10 Sep 2026 03:50:45 UTC
- Observed here
- 24 Oct 2026 13:17:17 UTC
- Source terms
- GitHub Advisory Database · CC-BY-4.0
Original source record · Cite this exact observation · Complete original publisher JSON
This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: osv · GitHub Advisory Database · CC-BY-4.0. Source text is retained; field grouping and change labels are provided by ChangeIntel.
CVSS_V3 · CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N
Publisher rating · MODERATE