Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Network-accessible via default HTTP inputs with no auth required; A:L reflects partial availability impact bounded by runtime request-size limits rather than full service collapse.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
3Blast Radius
ecosystem impact- 7 npm packages depend on hono (4 direct, 3 indirect)
Ecosystem-wide dependent count for version 4.12.0.
DescriptionCVE.org
Hono is a Web application framework that provides support for any JavaScript runtime. From 4.12.0 to 4.12.33, the languageDetector middleware is vulnerable to algorithmic complexity denial of service when processing a crafted language tag containing a large number of hyphen separated subtags. To implement progressive language tag truncation, normalizeLanguage() repeatedly calls parts.slice(0, i).join('-') for every possible prefix, so the total amount of string processing grows quadratically with the number of subtags. Language values may come from a query parameter, cookie, Accept-Language header, or URL path, depending on the detector configuration, and the default detector order enables query string, cookie, and header detection, so applications using languageDetector() may expose this processing to unauthenticated requests. An attacker may repeatedly send requests containing long, hyphen separated language tags, causing excessive CPU consumption and preventing unrelated requests from being processed. This issue is fixed in version 4.12.34.
AnalysisAI
Quadratic-complexity denial of service in Hono's languageDetector middleware (versions 4.12.0-4.12.33) allows unauthenticated remote attackers to exhaust CPU resources by sending HTTP requests with crafted language tags containing large numbers of hyphen-separated subtags. The default middleware configuration accepts language values from query parameters, cookies, and the Accept-Language header without authentication, meaning the vulnerable code path is reachable from the network in any default Hono deployment using this middleware. No public exploit code has been identified and this CVE is not in the CISA KEV catalog, but the attack is trivially constructible from the advisory description; the fix was released in version 4.12.34.
Technical ContextAI
Hono (CPE: cpe:2.3:a:honojs:hono:*:*:*:*:*:*:*:*) is a lightweight TypeScript/JavaScript web framework targeting any JS runtime including Cloudflare Workers, Deno, Bun, and Node.js. The root cause is CWE-407 (Algorithmic Complexity): the normalizeLanguage() function in the languageDetector middleware splits a user-supplied language tag on hyphens and reconstructs every shorter prefix via parts.slice(0, i).join('-') inside a loop, producing O(N²) string operations for an input with N subtags. Because language values are sourced from user-controlled HTTP inputs - Accept-Language header, query parameters, cookies, or URL path, with all three of the first options enabled by default - the attacker-controlled input is fed directly into this quadratic loop. The fix (commit f70e2c3) inverts the algorithm to iterate over the bounded list of configured supported languages rather than over prefixes of the unbounded attacker input, reducing complexity to O(M) where M is the number of configured languages.
RemediationAI
Upgrade the hono npm package to version 4.12.34 or later, which replaces the quadratic prefix-reconstruction loop with a linear scan over the bounded supported-languages list (patch commit f70e2c31684387b3231cc38512a31df6ca76a1c7, available at https://github.com/honojs/hono/commit/f70e2c31684387b3231cc38512a31df6ca76a1c7; full release at https://github.com/honojs/hono/releases/tag/v4.12.34). If immediate upgrade is not feasible, disable the languageDetector() middleware entirely as a compensating control - trade-off is loss of automatic language negotiation, which may break internationalization features. Alternatively, enforce strict length limits on the Accept-Language header and language-related query parameters at the reverse proxy or WAF layer (e.g., reject headers exceeding 256 characters); this reduces per-request cost but does not fully eliminate the issue as the advisory confirms inputs within typical runtime limits can still cause event-loop blocking. Rate-limiting unauthenticated requests at the edge provides an additional layer of defense without application changes.
The adapter @hono/node-server allows you to run your Hono application on Node.js. Rated high severity (CVSS 7.5), this v
Hono, a web framework, prior to version 4.6.5 is vulnerable to bypass of cross-site request forgery (CSRF) middleware by
Hono is a Web application framework that provides support for any JavaScript runtime. Rated medium severity (CVSS 5.3),
@hono/node-server is an adapter that allows users to run Hono applications on Node.js. Rated medium severity (CVSS 5.3),
Hono is a Web application framework that provides support for any JavaScript runtime. Rated medium severity (CVSS 5.0),
Cross-user HTML disclosure in Hono's server-side rendering affects all applications using hono/jsx with memo()-wrapped c
Hono is a web framework written in TypeScript. Rated medium severity (CVSS 4.3), this vulnerability is remotely exploita
Hono is a Web application framework that provides support for any JavaScript runtime. [CVSS 8.2 HIGH]
Hono versions before 4.11.4 allow JWT algorithm confusion attacks through improper algorithm validation in the JWK/JWKS
Hono before version 4.11.4 contains a JWT algorithm confusion vulnerability in its JWK/JWKS verification middleware that
Hono's `proxy()` function in the `hono/proxy` Proxy Helper leaks connection-scoped response headers to downstream client
Hono versions prior to 4.12.4 suffer from an authentication bypass in serveStatic when combined with route-based middlew
Same weakness CWE-407 – Inefficient Algorithmic Complexity
View allSame technique Denial Of Service
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-54578
GHSA-54fx-42gc-7vw4