Hono: `memo()` retains SSR output across requests, leading to cross-user data disclosure
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- Required
- Attack complexity
- High
- Impact type
- —
- Confidentiality · integrity · availability
- High · None · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub.
Summary
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| honojs | hono | 3.8.0 to before 4.12.34 | 4.12.34 | Patch available | CNA |
| — | hono (npm) | 3.8.0 to before 4.12.34 | 4.12.34 | Patch available | GHSA-f23p-vx2j-j53r |
- hono Vendorhonojs Affected 3.8.0 to before 4.12.34 Fixed in 4.12.34 Patch available CNA
- hono (npm) Vendor— Affected 3.8.0 to before 4.12.34 Fixed in 4.12.34 Patch available GHSA-f23p-vx2j-j53r
Remediation
- Fix · CNA hono (honojs) Fixed in 4.12.34
- Fix · GHSA-f23p-vx2j-j53r hono (npm) Fixed in 4.12.34 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-71850
- 2026-10-03 Alias added: GHSA-f23p-vx2j-j53r
References
More honojs vulnerabilities
- TI-2024-21741 Hono vulnerable to Restricted Directory Traversal in serveStatic with deno CVSS 3.1MEDIUM 5.3
- TI-2024-15441 @hono/node-server can't handle "double dots" in URL CVSS 3.1MEDIUM 5.3
- TI-2024-32610 Hono vulnerable to bypass of CSRF Middleware by a request without Content-Type header. CVSS 3.1MEDIUM 5.9
- TI-2024-29381 Hono CSRF middleware can be bypassed using crafted Content-Type header CVSS 3.1MEDIUM 5.0
- TI-2026-39189 Hono: Lambda@Edge adapter keeps only the last value of a repeated request header, dropping the rest CVSS 3.1MEDIUM 4.8
- TI-2026-23190 Hono: Arbitrary file access via serveStatic vulnerability CVSS 3.1CRITICAL 9.8
Sources
- CVE-2026-71850 · CVE Program
- CVE-2026-71850 · NVD
- FIRST EPSS
- GHSA-f23p-vx2j-j53r · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences