⚠ Withdrawn by GitHub Security Advisories
Withdrawn: September 30, 2026
Duplicate Advisory: hono/jsx renders plain strings unescaped in boundary components, leading to XSS
📋 Description
Duplicate Advisory
This advisory has been withdrawn because it is a duplicate of GHSA-hxh3-vqpv-xpqv. This link is maintained to preserve external references.
Original Description
hono before 4.13.7 fails to HTML-escape plain strings rendered by hono/jsx as a child or fallback of Suspense, as a string child of ErrorBoundary alongside an asynchronous sibling, as the single child of a Context.Provider, or as the root value passed to renderToString() or renderToReadableStream() from hono/jsx/dom/server. These paths stringify their input and treat the result as already-escaped markup, so an attacker who controls such a string during server-side rendering can inject arbitrary HTML and execute script under the application's origin.
🎯 Affected products1
- npm/hono:< 4.13.7