GitHub Advisoryadvisory · npm

GHSA-hvrm-45r6-mjfj hono/jsx does not isolate context per request, leading to cross-request data disclosure

MEDIUM Published 2026-07-21 Modified 2026-07-21 Official page ↗
Aliases
CVE-2026-59896
Ecosystem
npm
Packages
hono
Severity
Moderate
CVSS vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:N
Weaknesses
CWE-362
Reviewed
2026-07-21

Affected packages

• npm hono: >= 4.11.8, < 4.12.27 → fixed in 4.12.27

Description

Summary `hono/jsx` did not isolate context values per request during server-side rendering. While an async component was suspended on `await`, its provided context value stayed observable to other requests rendering concurrently, so `useContext()` could return a value from a different in-flight request. Details During server-side rendering, context values were kept in a process-wide structure rather than scoped to each request's render. While an async component awaited, another request entering the same provider could observe or replace the value; when the first render resumed, it could read the other request's context. This affects the usual ways request-scoped data is passed through a server-rendered JSX tree: • `createContext()` / `useContext()` • the `jsxRenderer` middleware and `useRequestContext()` It arises only when context is read after an `await` inside an async component while requests render concurrently. Reading context synchronously (before any `await`), purely synchronous rendering, and client-side (DOM) rendering are not affected. Impact Under concurrent requests, a response could be rendered with another request's context. A user may receive HTML rendered for a different user, and an authorization check performed after an `await` may be evaluated against another user's data. This may lead to: • disclosure of rendered output intended for another user • authorization decisions made with the wrong request's context • cross-request mixing of session or other request-scoped state

Related

Alias · CVE (1)

  • CVE-2026-59896 Hono is a Web application framework that provides support for any JavaScript runtime. vulnerability

Weakness · CWE (1)

  • CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization weakness

References