CVE-2026-69207
MediumCVSS 5.3Exploitation Probability (EPSS)
Low risk40th percentile - higher than 40% of all known CVEs
Summary
Hono before version 4.12.34 has a ReDoS vulnerability in the built-in CORS middleware (hono/cors). During a preflight OPTIONS request, the middleware parses the Access-Control-Request-Headers header using a regular expression with quadratic complexity, which can cause long CPU consumption and block request processing. This affects the default configuration when allowHeaders is unset or empty.
Risk Assessment
The risk includes potential service unavailability due to a single preflight request with a long run of whitespace, especially in runtimes sharing a single execution thread across requests.
Recommendation
Upgrade to version 4.12.34 or later. If upgrade is not possible, set a non-empty allowHeaders in the CORS configuration.
Other vulnerabilities in Hono
See all- CVE-2026-109955Medium
Hono from 4.12.4 before 4.13.11 contains a middleware bypass vulnerability in serveStatic that allows unauthenticated attackers to skip prefix middleware by exploiting double path decoding. Attackers can send malformed percent-encoded paths that the router matches in encoded form, reaching static files without authentication checks running.
- CVE-2026-22818High
Hono is a web framework for JavaScript. Prior to 4.11.4, the JWK/JWKS JWT verification middleware had a flaw that allowed the algorithm from the JWT header to influence signature verification when the selected JWK did not define an algorithm. This could enable JWT algorithm confusion and, in certain configurations, allow forged tokens to be accepted.
- CVE-2026-22817High
Hono is a web framework for JavaScript. Prior to version 4.11.4, the JWT middleware for JWK/JWKS verification had a flaw where the JWT header's alg value could influence signature verification when the selected JWK did not explicitly specify an algorithm. This could enable JWT algorithm confusion and, in certain configurations, allow forged tokens to be accepted.
- GHSA-frvp-7c67-39w9Medium
Path traversal vulnerability in serve-static on Windows via encoded backslash (%5C) in the request path. On Windows hosts, an encoded backslash (%5C) decodes to \, which the Windows path treats as a directory separator.
- CVE-2026-93981Medium
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(). 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.
- CVE-2026-84365Medium
Hono framework versions 4.12.12 through 4.13.5 contain an incomplete fix for CVE-2026-39408 — toSSG() can still write files outside the configured output directory when a route parameter contains consecutive parent-directory segments. This affects build-time static site generation only, when ssgParams values are not fully developer-controlled.
- CVE-2026-84364Medium
In Hono (Web framework for JavaScript) prior to version 4.13.5, when parseBody() expands dot-separated form field names into nested objects with dot-notation parsing enabled, it does not limit the nesting depth or the total number of intermediate objects created. Empty segments are preserved, so one deeply dotted field name can encode one nesting level per byte, while a large number of shallowly dotted fields can create the same amplification across a request. A request body within a normal size limit can therefore allocate an object graph far larger than the request after the body has already been accepted. An unauthenticated attacker who can reach an affected endpoint can send concurrent requests that exhaust the JavaScript heap, terminate the server process, and leave the service unavailable until restart. Dot-notation parsing is not enabled by default, and applications using the default behavior are not affected. This issue is fixed in version 4.13.5.
- CVE-2026-84363Medium
In Hono (Web framework for JavaScript) prior to version 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.
- CVE-2026-71850Medium
A vulnerability in the Hono framework from version 3.8.0 to 4.12.33 affects memo() from hono/jsx, which retains the result of a server-side render and reuses it for later renders with equal props. Request-scoped values read inside the component are not part of the comparison, potentially causing a user to receive HTML rendered for another user's request. The issue is fixed in version 4.12.34.
- CVE-2026-71849Low
Hono is a web application framework supporting any JavaScript runtime. From 4.7.0 to 4.12.33, the proxy() function in hono/proxy does not remove response headers named by the origin's Connection header. Per RFC 9110, an intermediary must remove these headers before forwarding, but the function only removes standard hop-by-hop headers, potentially leading to disclosure of internal metadata.
Original NVD description (English source)
Hono is a Web application framework that provides support for any JavaScript runtime. Prior to 4.12.34, the built-in CORS middleware, hono/cors, is vulnerable to a regular expression denial of service (ReDoS). During a preflight OPTIONS request, the middleware parses the attacker-controlled Access-Control-Request-Headers header using a whitespace-tolerant regular expression whose backtracking makes its running time quadratic in the input length. Because the header value is bounded only by the deployment's maximum HTTP header size, a single preflight carrying a long run of whitespace can consume seconds of CPU and block request processing. On runtimes that share one execution thread across requests, this stalls concurrent requests as well, and repeated requests can render the service unresponsive. This affects the default configuration, since the vulnerable path is reached whenever cors() is used with an unset or empty allowHeaders. Applications that set a non-empty allowHeaders are not affected. This issue is fixed in version 4.12.34.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

