Skip to content

GHSA-xgm2-5f3f-mvvc CVE-2026-59897

Hono: API Gateway v1 adapter can drop a distinct repeated request header value during de-duplication

Medium npm
Severity
4.8 / 10
Medium · CVSS 3.1
Exploit chance (EPSS)
0.18%
Chance of exploitation in the next 30 days. Higher than 7.54% of scored vulnerabilities.
Known exploited
No
Not in CISA's catalog
Weakness
CWE-348 Use of Less Trusted Source
Fix
4.12.27
Upgrade hono to this version or later

Description

Summary

The AWS API Gateway v1 adapter can drop a distinct repeated request header value. When a header appears multiple times, the adapter de-duplicates values using a substring comparison instead of an exact match, so a value that is a substring of another value of the same header is omitted (for example, 203.0.113.1 is dropped when another value is 203.0.113.10).

Details

A repeated request header carries an ordered list of values. Middleware or application logic that depends on the complete list — such as IP restriction that walks the X-Forwarded-For chain, rate limiting, audit logging, or proxy-chain validation — can therefore receive incomplete data that differs from what the client actually sent.

This issue arises on deployments using the AWS API Gateway v1 adapter (the same pattern also affects the VPC Lattice adapter), for requests that contain the same header more than once.

Impact

An attacker can craft repeated header values so that one value is omitted before the application sees the request. Where a security or routing decision relies on the full chain, this can alter that decision.

This affects applications deployed through Hono's AWS API Gateway v1 (or VPC Lattice) adapter that rely on the complete set of repeated request header values.

Affected versions

npm

PackageVulnerableFixed in
hono
>= 4.3.3, < 4.12.27
4.12.27

How to fix

Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.

hono npm → 4.12.27

npm
npm install hono@4.12.27
yarn
yarn add hono@4.12.27
pnpm
pnpm add hono@4.12.27

Severity breakdown

CVSS 3.1 4.8

CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N

Attack vector
Network
Attack complexity
High
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
None

Weakness

CWE-348: Use of Less Trusted Source

The product has two different sources of the same data or information, but it uses the source that has less support for verification, is less trusted, or is less resistant to attack.

References

Timeline

  1. Published
  2. Last updated by the source
  3. Latest EPSS score
AdvisorySeverityWhy it's related
GHSA-5r4p-p66f-jhc7
Hono: `serveStatic` decodes the request path a second time, leading to bypass of middleware on static paths
Medium Also affects hono
GHSA-hxh3-vqpv-xpqv
hono/jsx renders plain strings unescaped in boundary components, leading to XSS
Low Also affects hono
GHSA-gqvv-2mrq-wpjv
Hono: Incomplete fix for CVE-2026-39408: `toSSG()` still writes files outside the output directory
Medium Also affects hono
GHSA-g6gw-c38x-mqfc
Hono: Unbounded dot-notation nesting in `parseBody()` can cause memory exhaustion
Medium Also affects hono
GHSA-crvj-82cr-hjcx
Hono: Query parser reads parameters after the URL fragment, causing cache-key and proxy interpretation differentials
Medium Also affects hono
GHSA-f23p-vx2j-j53r
Hono: `memo()` retains SSR output across requests, leading to cross-user data disclosure
Medium Also affects hono
GHSA-79qm-7rj5-m7r9
Hono: Proxy Helper does not remove response headers listed in the `Connection` header
Low Also affects hono
GHSA-54fx-42gc-7vw4
Hono: Algorithmic Complexity DoS in Language Middleware
Medium Also affects hono
Is this in your code?

MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.

Check your repos with MergeHarbor