CVE-2026-73565
mediumpriority · track · 0EPSS 0.005 · 45 %ileEUUSEPSS · scored 2026-10-28
@hono/node-server allows running the Hono application on Node.js. From 2.0.0 until 2.0.10, a WebSocket upgrade request to an upgradeWebSocket route with a missing or malformed Sec-WebSocket-Key header causes src/websocket.ts to retain the request's IncomingMessage in waiterMap and leave waitForWebSocket pending because ws.handleUpgrade emits no connection event. The aborted handshake therefore has no cleanup path, allowing an unauthenticated attacker to flood a public route, cause unbounded memory growth, and eventually make the service unavailable. This issue is fixed in version 2.0.10.
cvss
Technical severity, 0–10. One row per scoring source.
base score 0–10 · higher = more severe · hover a vector to decode
weaknesses
The CWE weakness classes this flaw belongs to.
affected products (2)
Products and version ranges known to be affected.
advisories (1)
Vendor and ecosystem advisories describing this.
- GHSA-9mqv-5hh9-4cggNode.js Adapter for Hono: Unauthenticated memory-leak DoS via aborted WebSocket handshake2026-07-21ghsa · osvUS
## Summary A WebSocket upgrade request to an `upgradeWebSocket` route with a missing or malformed `Sec-WebSocket-Key` header leaks memory permanently. The request's `IncomingMessage` is retained in an internal map and a pending promise is never settled, even though no connection is established. Since the route is reachable pre-handshake without authentication, an unauthenticated attacker can flood it to gradually exhaust memory. ## Details The built-in WebSocket helper cleans up its internal map only on a successful handshake or when the route guard rejects the request. When `ws` aborts the handshake because `Sec-WebSocket-Key` is missing or malformed, no `connection` event is emitted, so neither cleanup path runs and the entry is retained forever. A present-but-malformed key leaks identically, so a proxy that only checks for the header's presence does not mitigate it. ## Impact An unauthenticated attacker can flood any public `upgradeWebSocket` route with malformed-key upgrade requests, causing unbounded memory growth and eventual loss of availability. No confidentiality or integrity impact. Reported by @TarPeg007.
also known as (1)
Other names and identifiers for this entity.
sources
Which sources assert this record, and when.
references (6)
External citations — patches, advisories, analysis.
- https://github.com/honojs/node-server/commit/3a21938c418340e980cb7ffa88e78369f78392d1enisa_euvd
- https://github.com/honojs/node-server/releases/tag/v2.0.10enisa_euvd
- https://github.com/honojs/node-server/security/advisories/GHSA-9mqv-5hh9-4cggenisa_euvd
- https://github.com/honojs/node-server/commit/3a21938c418340e980cb7ffa88e78369f78392d1nvd
- https://github.com/honojs/node-server/releases/tag/v2.0.10nvd
- https://github.com/honojs/node-server/security/advisories/GHSA-9mqv-5hh9-4cggnvd
Attackers weaponise vulnerabilities like this against internet-exposed services. See what is exposed on your perimeter with a free passive scan.
Free scan