Skip to main content

Hono CVE-2026-71850

| EUVDEUVD-2026-54580 MEDIUM
Exposure of Data Element to Wrong Session (CWE-488)
2026-08-07 GitHub_M GHSA-f23p-vx2j-j53r
4.8
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as low-privilege user
  2. Delivery
    Request page with memo()-wrapped context-reading component
  3. Exploit
    Server populates memo cache with first user's rendered HTML
  4. Execution
    Second authenticated user sends request with equal props to same warm instance
  5. Persist
    Memoization comparison passes on props alone, context skipped
  6. Impact
    Second user receives first user's HTML containing PII or CSRF token

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V14 - Data Protection Exposure of data element to wrong session
Exploitation Conditions

Exploitation requires four concurrent conditions: (1) the Hono application uses hono/jsx for server-side rendering; (2) at least one component is wrapped with memo() and reads per-user or per-request data via createContext()/useContext(), useRequestContext(), or getContext() rather than through props; (3) two requests with comparator-equal props hit the same warm server instance in sequence - the cache must be populated by the first render before the second request arrives; and (4) per the CVSS PR:L vector, the attacker must be an authenticated low-privilege user. Applications that use memo() only on purely static or prop-driven components are not affected. Client-side-only rendering is explicitly unaffected per the advisory. This is a non-default misconfiguration: the vulnerable pattern (memo() combined with ambient context reads) must be actively present in application code and is not introduced by Hono itself out of the box.

Impact

The official CVSS 3.1 score of 4.8 (Medium) accurately reflects realistic exploitation difficulty: AV:N confirms the attack surface is the network, but AC:H flags a timing dependency - both requests must reach the same warm server instance with matching props, which is not reliably controllable by an external attacker. PR:L indicates authenticated low-privilege users are the relevant exploitation context, and UI:R acknowledges that a second user interaction is required to populate the cache. Despite C:H confidentiality impact, the combination of AC:H and PR:L appropriately constrains the effective risk score. There is no CISA KEV listing and no public PoC identified, so real-world exploitation is likely opportunistic on dense shared-instance deployments (e.g., serverless platforms where hot instances serve many users) rather than targeted. EPSS data was not included in the provided intelligence, so probability-based exploitation likelihood cannot be quantified. The highest-risk scenario is a high-traffic application using memo() on authenticated UI components where many users share similar props - in that environment, cross-user leakage of CSRF tokens or PII is practically achievable without sophisticated attack tooling.

Exploit ScenarioDerived

User A authenticates and requests a page that renders a memo()-wrapped component displaying their username and a CSRF token, both sourced from hono/context-storage. User B subsequently sends a request to the same endpoint on the same warm server instance with props that match User A's (e.g., a shared layout component with identical static props). Because the memoized render from User A's request remains cached in the component closure, the server returns User A's HTML - including their CSRF token and profile data - to User B. No public PoC is available, but the vulnerability is mechanically straightforward on high-traffic deployments where warm instances serve multiple concurrent users.

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

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

Alert me

AnalysisAIv1 – Aug 07, 2026

Cross-user HTML disclosure in Hono's server-side rendering affects all applications using hono/jsx with memo()-wrapped components that read request-scoped context. On a warm server instance, when two requests share comparator-equal props, the memoized render from the first request is served to the second user verbatim - bypassing per-request context isolation for values obtained via createContext()/useContext(), useRequestContext(), or getContext(). This can leak another user's profile data, CSRF tokens embedded in HTML, or role-gated content. No public exploit or CISA KEV listing exists at time of analysis; the vendor released a confirmed fix in v4.12.34.

RemediationAI

Upgrade hono to version 4.12.34 or later (npm install hono@4.12.34 or npm install hono@latest). The patch is confirmed at https://github.com/honojs/hono/commit/0c45036d6b0ddf42ab2fa44639dc8710825d5c0f and the release is tagged at https://github.com/honojs/hono/releases/tag/v4.12.34. If an immediate upgrade is not feasible, the most effective compensating control is to refactor any memo()-wrapped components that read request-scoped context: move all per-request values (user identity, CSRF tokens, role data) into props explicitly, ensuring they participate in the memoization comparison - this carries the trade-off of increased prop-drilling and potentially more frequent re-renders. Alternatively, remove memo() entirely from any component that reads ambient context; this eliminates the caching benefit but fully restores correct per-request isolation with no functional side effects. Do not rely on rate limiting or request throttling as mitigation; the race condition can occur between legitimate concurrent users on any busy warm instance.

Affected VersionsENISA

hono 3.8.0, < 4.12.34

Affected Packages

npm hono fix: 4.12.34

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 is a lightweight, multi-runtime JavaScript web framework (CPE: cpe:2.3:a:honojs:hono:*:*:*:*:*:*:*:*) supporting Cloudflare Workers, Bun, Deno, and Node.js. The vulnerability is rooted in CWE-488 (Exposed Data Element to Wrong Session): the memo() higher-order component in hono/jsx was designed to cache SSR output for performance, storing the rendered JSX tree in a closure-captured variable (computed) and invalidating it only when props change via the propsAreEqual comparator. Request-scoped ambient context - provided by createContext()/useContext(), useRequestContext() from hono/jsx-renderer, and getContext() from hono/context-storage - is read during rendering but is invisible to the memoization key. The fix at commit 0c45036 removes SSR-path memoization entirely: the wrapper now calls component(props) on every render, eliminating the cross-request state retention while preserving the propsAreEqual hook solely for the DOM renderer.

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 4.8 MEDIUM
AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:N/A:N
vuln.today AI 4.8 MEDIUM

AC:H reflects the timing/instance race requirement; PR:L because exploitation occurs in authenticated user sessions; UI:R because a second user must make a request; C:H only as no writes or availability effects are possible.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

1
Patch available
Aug 07, 2026 - 19:02 EUVD

DescriptionCVE.org

Hono is a Web application framework that provides support for any JavaScript runtime. From 3.8.0 to 4.12.33, memo() from hono/jsx retains the result of a server side render and reuses it for later renders with comparator equal props, and request scoped values read inside the component take no part in that comparison, so a response can contain HTML rendered for another user's request. Components wrapped with memo() are compared by props alone; values read implicitly during rendering, such as JSX Context through createContext() and useContext(), useRequestContext() from hono/jsx-renderer, and getContext() from hono/context-storage, do not participate, and the retained result lives as long as the wrapped component, so it outlives the request that produced it. A user may receive a response containing HTML rendered for another user when both render the same memoized component with comparator equal props on the same warm instance, which may disclose another user's account or profile data, disclose request scoped secrets embedded in HTML such as CSRF tokens, or expose role specific content to users who should not receive it. This issue is fixed in version 4.12.34.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Medium
popular edge-runtime JS framework, growing but not ubiquitous
Threat Intel
1
1 source
Exploit
POC
Public exploit code exists
Data Quality
5 sources
Confidence: Medium

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 Yes
EPSS 0.2%
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· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

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

Attack Technique

Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.

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

CVE-2026-22817 HIGH
8.2 Jan 13

Hono before version 4.11.4 contains a JWT algorithm confusion vulnerability in its JWK/JWKS verification middleware that

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