[ CVE-2026-93981 · Published 19 Sep 2026 ]

hono/jsx renders plain strings unescaped in boundary components, leading to XSS

CVSS 4.7 EPSS <1%Fix available

[ Description ]Official 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.

[ Fixes ]Fixes and patches

  • hono 4.13.7Fixed version · GitHub Advisories · npm package hono: upgrade to 4.13.7 or later (affected < 4.13.7)

[ Packages ]Affected open-source packages