@hono/node-server позволяет запускать приложение Hono на Node.js. С версий 2.0.0 до 2.0.10 запрос обновления WebSocket на маршрут updateWebSocket с отсутствующим или неверным заголовком Sec-WebSocket-Key приводит к тому, что src/websocket.ts сохраняет IncomingMessage запроса в waiterMap и оставляет ожидание waitForWebSocket, поскольку ws.handleUpgrade не генерирует событие подключения. Таким образом, прерванное рукопожатие не имеет пути очистки, что позволяет неаутентифицированному злоумышленнику затопить общедоступный маршрут, вызвать неограниченный рост памяти и в конечном итоге сделать службу недоступной.
Эта проблема исправлена в версии 2.0.10.
Показать оригинальное описание (EN)
@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 v3.1