node-server · Vulnerability
cve-program · CVE-2026-126343
Published@hono/node-server allows running the Hono application on Node.js. From 2.0.0 until 2.1.6, the WebSocket upgrade handler waits for the Hono application to finish asynchronous middleware or handler work without first attaching an error listener to the socket. If an unauthenticated client resets the TCP connection during that window, the socket emits an unhandled ECONNRESET error and terminates the Node.js process. If a global uncaughtException handler suppresses termination, the pending upgrade waiter is not released and repeated requests can grow the heap. This affects applications that enable WebSocket support and perform asynchronous work on the upgrade path. This issue is fixed in version 2.1.6.
Read the publisher's advisoryeuvd · EUVD-2026-124721
Published@hono/node-server allows running the Hono application on Node.js. From 2.0.0 until 2.1.6, the WebSocket upgrade handler waits for the Hono application to finish asynchronous middleware or handler work without first attaching an error listener to the socket. If an unauthenticated client resets the TCP connection during that window, the socket emits an unhandled ECONNRESET error and terminates the Node.js process. If a global uncaughtException handler suppresses termination, the pending upgrade waiter is not released and repeated requests can grow the heap. This affects applications that enable WebSocket support and perform asynchronous work on the upgrade path. This issue is fixed in version 2.1.6.
Read the publisher's advisorynvd · CVE-2026-126343
Published@hono/node-server allows running the Hono application on Node.js. From 2.0.0 until 2.1.6, the WebSocket upgrade handler waits for the Hono application to finish asynchronous middleware or handler work without first attaching an error listener to the socket. If an unauthenticated client resets the TCP connection during that window, the socket emits an unhandled ECONNRESET error and terminates the Node.js process. If a global uncaughtException handler suppresses termination, the pending upgrade waiter is not released and repeated requests can grow the heap. This affects applications that enable WebSocket support and perform asynchronous work on the upgrade path. This issue is fixed in version 2.1.6.
Read the publisher's advisoryosv · GHSA-qv5m-9pm6-hqp3
Published### Summary While `@hono/node-server` waits for the Hono application to handle a WebSocket upgrade request, the socket has no error listener. If the client resets the TCP connection during that time, the resulting `ECONNRESET` is emitted as an unhandled `'error'` event and the process terminates. ### Details The upgrade handler awaits the application before attaching any listener to the socket. When middleware on the upgrade path does asynchronous work, such as an authentication lookup, a connection reset in that window has no handler. If a global `uncaughtException` handler swallows the error, the pending upgrade is never released and its entry is retained for the lifetime of the process. The fix attaches error and close listeners to the socket before calling the application, releases the pending upgrade when the socket closes, and skips the handshake on a destroyed socket. ### Impact An unauthenticated client can terminate the server process with a single connection by sending a WebSocket upgrade request and resetting the connection before the application has responded. Where the crash is suppressed, repeated requests grow the heap. This affects applications that enable WebSocket support in `@hono/node-server` and run asynchronous middleware or handlers on the upgrade path.
Read the publisher's advisoryAffected versions, risk and source history
Related advisories and sources
Publishers link these advisories through the identifiers shown below. A shared identifier or date alone does not tell you whether your software is affected or whether the advisories describe the same cause.
CVE-2026-126343 · CVE overview and exploitation status
cve-program · CVE-2026-126343
- https://github.com/honojs/node-server/security/advisories/GHSA-qv5m-9pm6-hqp3
- https://github.com/honojs/node-server/commit/61cc0267e613e684401f17c27538ba3bf97339a4
- https://github.com/honojs/node-server/releases/tag/v2.1.6
euvd · EUVD-2026-124721
- https://github.com/honojs/node-server/security/advisories/GHSA-qv5m-9pm6-hqp3
- https://github.com/honojs/node-server/commit/61cc0267e613e684401f17c27538ba3bf97339a4
- https://github.com/honojs/node-server/releases/tag/v2.1.6
nvd · CVE-2026-126343
- https://github.com/honojs/node-server/commit/61cc0267e613e684401f17c27538ba3bf97339a4
- https://github.com/honojs/node-server/releases/tag/v2.1.6
- https://github.com/honojs/node-server/security/advisories/GHSA-qv5m-9pm6-hqp3
osv · GHSA-qv5m-9pm6-hqp3
Related changes
Linked by CVE identifier- @hono/node-server allows running the Hono application on Node.js. From 2.0.0 until 2.1.6, the WebSocket upgrade handler waits for the Hono application to finish asynchronous middleware or handler work without first attaching an error listen… · Advisory content revised · 14 Nov 2026
- @hono/node-server: Unhandled `ECONNRESET` on the socket during an asynchronous WebSocket upgrade crashes the process · Newly collected advisory · 12 Nov 2026
- @hono/node-server: Unhandled `ECONNRESET` on the socket during an asynchronous WebSocket upgrade crashes the process · Newly collected advisory · 12 Nov 2026