---
id: GHSA-6623-4q32-82v8
title: >-
  Duplicate Advisory: hono/jsx renders plain strings unescaped in boundary
  components, leading to XSS
summary: >-
  Duplicate Advisory: hono/jsx renders plain strings unescaped in boundary
  components, leading to XSS
severity: low
cvss: 4.7
cwe:
  - CWE-79
vendor: hono
product: hono
ecosystem: npm
affected:
  - hono < 4.13.7
published: '2026-09-19'
updated: '2026-09-30'
sourceUpdated: '2026-09-30T23:46:02Z'
source: GHSA
sourceUrl: 'https://github.com/advisories/GHSA-6623-4q32-82v8'
references:
  - url: 'https://github.com/honojs/hono/security/advisories/GHSA-hxh3-vqpv-xpqv'
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-93981'
  - url: >-
      https://www.vulncheck.com/advisories/hono-jsx-before-4.13.7-cross-site-scripting-via-unescaped-strings
  - url: 'https://github.com/advisories/GHSA-6623-4q32-82v8'
tags:
  - ghsa
  - npm
ingestedAt: '2026-10-01T00:33:27.744Z'
---

## Overview

## 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 packages

- `hono < 4.13.7`

## Remediation

Refer to the advisory for the patched release.
