Skip to content
Heist/ feed
Back to feed
Medium

@hono/node-server: Unauthenticated memory-leak DoS via aborted WebSocket handshake

Type: advisorySources: OSV

@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.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-73565
Confirmed fixed CVEs
Not specified
Updated in this feed
2 Nov 2026, 16:42 UTC · Revision 1

Source evidence

@hono/node-server: Unauthenticated memory-leak DoS via aborted WebSocket handshake

core-osv · Original source

Published 13 Aug 2026, 17:37 UTC

@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.

osv:CVE-2026-73565
Complete source record
{
  "id": "758410c30f433cfbea2089c8326f871bc13116258941b02e3bfcf6955be2943a",
  "url": "https://osv.dev/vulnerability/CVE-2026-73565",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "@hono/node-server: Unauthenticated memory-leak DoS via aborted WebSocket handshake",
    "summary": "@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.",
    "evidence": "osv:CVE-2026-73565",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-73565",
      "aliases": [
        "CVE-2026-73565",
        "GHSA-9mqv-5hh9-4cgg"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/honojs/node-server",
              "type": "GIT",
              "events": [
                {
                  "introduced": "58c9355998b3b202bf7eb22b1505a2d4d847c3b0"
                },
                {
                  "fixed": "7c1457ed5536c02fdd2f001129fae67bcbca54a1"
                },
                {
                  "fixed": "3a21938c418340e980cb7ffa88e78369f78392d1"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "2.0.0"
                      },
                      {
                        "fixed": "2.0.10"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "3a21938c418340e980cb7ffa88e78369f78392d1"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "7c1457ed5536c02fdd2f001129fae67bcbca54a1"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v2.0.10"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v2.0.9",
            "v2.0.8",
            "v2.0.7",
            "v2.0.6",
            "v2.0.5",
            "v2.0.4",
            "v2.0.3",
            "v2.0.2",
            "v2.0.1",
            "v2.0.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-73565.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:20.906712111Z",
      "provider": "osv",
      "references": [
        "https://github.com/honojs/node-server/releases/tag/v2.0.10",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/73xxx/CVE-2026-73565.json",
        "https://github.com/honojs/node-server/security/advisories/GHSA-9mqv-5hh9-4cgg",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-73565",
        "https://github.com/honojs/node-server/commit/3a21938c418340e980cb7ffa88e78369f78392d1"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-401",
          "CWE-770"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/73xxx/CVE-2026-73565.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-73565",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 487300,
  "published_at": "2026-08-13T17:37:28.579+00:00"
}