{"id":"CVE-2026-109855","aliases":["DEBIAN-CVE-2026-109855","EUVD-2026-101959","GHSA-qq8j-7v2v-3rwp","RHSA-2026:76677","RHSA-2026:83198","UBUNTU-CVE-2026-109855"],"status":"published","title":"undici WebSocket client vulnerable to Denial of Service via failed HTTP/2 handshake","description":"undici is an HTTP client library for Node.js. In versions 8.11.0 and 8.11.1, its experimental WebSocket client, which is enabled by default when HTTP/2 is allowed, mishandles a failed WebSocket handshake over HTTP/2: the request is already marked completed, so the abort becomes a no-op and the underlying HTTP/2 stream is left open with no error listener. When a malicious server then destroys the connection, the orphaned stream emits an unhandled error and the Node.js process exits. A remote, unauthenticated server can therefore crash any client that opens a WebSocket to it over HTTP/2, resulting in a denial of service. The issue is fixed in undici 8.11.2, and users should upgrade to 8.11.2 or later. As a workaround, set allowH2 to false to disable HTTP/2 for WebSocket connections, or avoid opening WebSocket connections to untrusted servers.","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.00279,"percentile":0.20589,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-248","CWE-754"],"published":"2026-10-10T10:21:53Z","modified":"2026-11-01T05:00:06Z","fixes":[{"ecosystem":"npm","package":"undici","fixed_in":["8.11.2"],"sources":["ghsa","osv"]},{"ecosystem":"Debian:14","package":"node-undici","fixed_in":["8.12.2+dfsg+~cs3.2.3-1"],"sources":["osv"]},{"ecosystem":"Red Hat:hummingbird:1","package":"nodejs26","fixed_in":["0:26.11.1-0.3.hum1"],"sources":["osv"]},{"ecosystem":"Red Hat:hummingbird:1","package":"nodejs26-bin","fixed_in":["0:26.11.1-0.3.hum1"],"sources":["osv"]},{"ecosystem":"Red Hat:hummingbird:1","package":"nodejs26-devel","fixed_in":["0:26.11.1-0.3.hum1"],"sources":["osv"]},{"ecosystem":"Red Hat:hummingbird:1","package":"nodejs26-docs","fixed_in":["0:26.11.1-0.3.hum1"],"sources":["osv"]},{"ecosystem":"Red Hat:hummingbird:1","package":"nodejs26-full-i18n","fixed_in":["0:26.11.1-0.3.hum1"],"sources":["osv"]},{"ecosystem":"Red Hat:hummingbird:1","package":"nodejs26-libs","fixed_in":["0:26.11.1-0.3.hum1"],"sources":["osv"]},{"ecosystem":"Red Hat:hummingbird:1","package":"nodejs26-npm","fixed_in":["0:11.20.0-1.26.11.1.0.3.hum1"],"sources":["osv"]},{"ecosystem":"Red Hat:hummingbird:1","package":"nodejs26-npm-bin","fixed_in":["0:26.11.1-0.3.hum1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"undici","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"8.11.0"},{"fixed":"8.11.2"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"node-undici","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.12.2+dfsg+~cs3.2.3-1"}]}],"versions":["7.15.0+dfsg+~cs3.2.0-1","7.15.0+dfsg+~cs3.2.0-3","7.16.0+dfsg+~cs3.2.0-1","7.16.0+dfsg+~cs3.2.0-2","7.18.2+dfsg+~cs3.2.0-1","7.24.5+dfsg+~cs3.2.0-1","7.24.6+dfsg+~cs3.2.0-1","7.24.6+dfsg+~cs3.2.0-2","7.24.6+dfsg+~cs3.2.0-3","7.3.0+dfsg1+~cs24.12.11-1","7.3.0+dfsg1+~cs24.12.11-2","8.10.2+dfsg+~cs3.2.2-1","8.12.1+dfsg+~cs3.2.3-1","8.5.0+dfsg+~cs3.2.0-1","8.5.0+dfsg+~cs3.2.0-2","8.5.0+dfsg+~cs3.2.0-3","8.9.0+dfsg+~cs3.2.0-1"]},{"source":"osv","ecosystem":"npm","package":"undici","ranges":[{"type":"SEMVER","events":[{"introduced":"8.11.0"},{"fixed":"8.11.2"}]}]},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"grafana12.4","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:12.4.12-0.4.hum1"}]}],"bundled":12},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"nodejs26","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:26.11.1-0.3.hum1"}]}]},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"nodejs26-bin","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:26.11.1-0.3.hum1"}]}]},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"nodejs26-devel","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:26.11.1-0.3.hum1"}]}]},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"nodejs26-docs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:26.11.1-0.3.hum1"}]}]},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"nodejs26-full-i18n","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:26.11.1-0.3.hum1"}]}]},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"nodejs26-libs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:26.11.1-0.3.hum1"}]}]},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"nodejs26-npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:11.20.0-1.26.11.1.0.3.hum1"}]}]},{"source":"osv","ecosystem":"Red Hat:hummingbird:1","package":"nodejs26-npm-bin","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:26.11.1-0.3.hum1"}]}]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"node-undici","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["5.22.1+dfsg1+~cs20.10.10.2-1ubuntu1","5.26.3+dfsg1+~cs23.10.12-2"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"node-undici","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["7.18.2+dfsg+~cs3.2.0-1build1","7.24.6+dfsg+~cs3.2.0-3","8.5.0+dfsg+~cs3.2.0-2","8.5.0+dfsg+~cs3.2.0-3","8.9.0+dfsg+~cs3.2.0-1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"node-undici","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["7.3.0+dfsg1+~cs24.12.11-2","7.16.0+dfsg+~cs3.2.0-2","7.18.2+dfsg+~cs3.2.0-1","7.18.2+dfsg+~cs3.2.0-1build1"]}],"products":[{"vendor":"nodejs","product":"undici"},{"vendor":"undici","product":"undici"}],"references":[{"url":"https://github.com/nodejs/undici/security/advisories/GHSA-qq8j-7v2v-3rwp","tags":["Mitigation","Vendor Advisory","advisory","web","article","report"]},{"url":"https://cna.openjsf.org/security-advisories.html","tags":["Vendor Advisory","advisory","web","article","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-109855","tags":["advisory"]},{"url":"https://github.com/nodejs/undici/pull/5873","tags":["web"]},{"url":"https://github.com/nodejs/undici/commit/dd28c5c55f4a25f7c441fd4365b1191f96c3b8bf","tags":["web"]},{"url":"https://github.com/nodejs/undici/releases/tag/v8.11.2","tags":["web"]},{"url":"https://github.com/advisories/GHSA-qq8j-7v2v-3rwp"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/109xxx/CVE-2026-109855.json","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-109855","tags":["advisory"]},{"url":"https://github.com/nodejs/undici","tags":["package"]},{"url":"https://access.redhat.com/errata/RHSA-2026:76677","tags":["advisory"]},{"url":"https://images.redhat.com/","tags":["article"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-56851","tags":["report"]},{"url":"https://access.redhat.com/security/updates/classification/","tags":["article"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-61801","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2024-24786","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-95502","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-101899","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-109855","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-100347","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-100348","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-100349","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-100350","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-100351","tags":["report"]},{"url":"https://access.redhat.com/security/cve/CVE-2026-97394","tags":["report"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_76677.json","tags":["advisory"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2268046","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2024-24786","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2024-24786","tags":["advisory"]},{"url":"https://go.dev/cl/569356","tags":["article"]},{"url":"https://groups.google.com/g/golang-announce/c/ArQ6CDgtEjY/","tags":["article"]},{"url":"https://pkg.go.dev/vuln/GO-2024-2611","tags":["advisory"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2547607","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-56851","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-56851","tags":["advisory"]},{"url":"https://go.dev/cl/793360","tags":["article"]},{"url":"https://go.dev/issue/80112","tags":["article"]},{"url":"https://pkg.go.dev/vuln/GO-2026-6629","tags":["advisory"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2548048","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-61801","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-61801","tags":["advisory"]},{"url":"https://github.com/moby/sys/commit/85a71bbe1faa36c552a960e6a5f3d0cfb632fbbe","tags":["article"]},{"url":"https://github.com/moby/sys/pull/221","tags":["article"]},{"url":"https://github.com/moby/sys/security/advisories/GHSA-mjcv-p78q-w5fw","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2550709","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-95502","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-95502","tags":["advisory"]},{"url":"https://grafana.com/security/security-advisories/cve-2026-95502","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2553575","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-97394","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-97394","tags":["advisory"]},{"url":"https://github.com/getkin/kin-openapi/commit/30e292371a89ca6d1f91a9553e0aa518b49f838d","tags":["article"]},{"url":"https://github.com/getkin/kin-openapi/releases/tag/v0.143.0","tags":["article"]},{"url":"https://github.com/getkin/kin-openapi/security/advisories/GHSA-p6wj-qrr4-pgh5","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2553580","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-100347","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-100347","tags":["advisory"]},{"url":"https://github.com/getkin/kin-openapi/commit/f1a5b523b82868d2d9be2e116b4e942892be72c3","tags":["article"]},{"url":"https://github.com/getkin/kin-openapi/releases/tag/v0.145.0","tags":["article"]},{"url":"https://github.com/getkin/kin-openapi/security/advisories/GHSA-fh4f-47mf-f2gj","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2553571","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-100348","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-100348","tags":["advisory"]},{"url":"https://github.com/getkin/kin-openapi/commit/88aa64c7cbd03ecadbb419c473bdcaa8b0124c6b","tags":["article"]},{"url":"https://github.com/getkin/kin-openapi/security/advisories/GHSA-mh7x-f8wq-4jhx","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2553589","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-100349","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-100349","tags":["advisory"]},{"url":"https://github.com/getkin/kin-openapi/commit/f5441d67f855ed34d975b3b85665764644ab1459","tags":["article"]},{"url":"https://github.com/getkin/kin-openapi/releases/tag/v0.146.0","tags":["article"]},{"url":"https://github.com/getkin/kin-openapi/security/advisories/GHSA-74vm-87hj-r66f","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2553584","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-100350","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-100350","tags":["advisory"]},{"url":"https://github.com/getkin/kin-openapi/commit/d090e36b2f1c42c898ba2a687a8f6e25f5ca727f","tags":["article"]},{"url":"https://github.com/getkin/kin-openapi/security/advisories/GHSA-h4r5-mxv5-8mjc","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2553587","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-100351","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-100351","tags":["advisory"]},{"url":"https://github.com/getkin/kin-openapi/commit/eda80e2676e9f577ceed2dd80e64f16083edb041","tags":["article"]},{"url":"https://github.com/getkin/kin-openapi/releases/tag/v0.147.0","tags":["article"]},{"url":"https://github.com/getkin/kin-openapi/security/advisories/GHSA-23vg-4cjm-66q5","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2550659","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-101899","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-101899","tags":["advisory"]},{"url":"https://github.com/axios/axios/commit/d19040bda7a8be2f82c3c6e1a5bc03917daee39a","tags":["article"]},{"url":"https://github.com/axios/axios/pull/11141","tags":["article"]},{"url":"https://github.com/axios/axios/releases/tag/v1.20.0","tags":["article"]},{"url":"https://github.com/axios/axios/security/advisories/GHSA-44g4-m2mj-wpvx","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2553103","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-109855","tags":["advisory","report"]},{"url":"https://access.redhat.com/errata/RHSA-2026:83198","tags":["advisory"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_83198.json","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2026-109855","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2026-109855","title":"undici WebSocket client vulnerable to Denial of Service via failed HTTP/2 handshake","description":"undici is an HTTP client library for Node.js. In versions 8.11.0 and 8.11.1, its experimental WebSocket client, which is enabled by default when HTTP/2 is allowed, mishandles a failed WebSocket handshake over HTTP/2: the request is already marked completed, so the abort becomes a no-op and the underlying HTTP/2 stream is left open with no error listener. When a malicious server then destroys the connection, the orphaned stream emits an unhandled error and the Node.js process exits. A remote, unauthenticated server can therefore crash any client that opens a WebSocket to it over HTTP/2, resulting in a denial of service. The issue is fixed in undici 8.11.2, and users should upgrade to 8.11.2 or later. As a workaround, set allowH2 to false to disable HTTP/2 for WebSocket connections, or avoid opening WebSocket connections to untrusted servers.","status":"published","published":"2026-10-15T08:12:51.245Z","modified":"2026-10-15T14:22:28.644Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"cna"}],"cwes":["CWE-248","CWE-754"],"updated_at":"2026-11-02T14:20:11.24076Z"}],"euvd":[{"id":"EUVD-2026-101959","description":"undici is an HTTP client library for Node.js. In versions 8.11.0 and 8.11.1, its experimental WebSocket client, which is enabled by default when HTTP/2 is allowed, mishandles a failed WebSocket handshake over HTTP/2: the request is already marked completed, so the abort becomes a no-op and the underlying HTTP/2 stream is left open with no error listener. When a malicious server then destroys the connection, the orphaned stream emits an unhandled error and the Node.js process exits. A remote, unauthenticated server can therefore crash any client that opens a WebSocket to it over HTTP/2, resulting in a denial of service. The issue is fixed in undici 8.11.2, and users should upgrade to 8.11.2 or later. As a workaround, set allowH2 to false to disable HTTP/2 for WebSocket connections, or avoid opening WebSocket connections to untrusted servers.","status":"published","published":"2026-10-15T08:12:51Z","modified":"2026-10-15T14:22:28Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T17:00:14.584665Z"}],"ghsa":[{"id":"GHSA-qq8j-7v2v-3rwp","title":"undici WebSocket client vulnerable to Denial of Service via failed HTTP/2 handshake","description":"### Impact\n\nundici's experimental WebSocket client (enabled by default via `allowH2: true`) crashes the Node.js process when it connects to a malicious server over HTTP/2. If the server answers the WebSocket upgrade with a response that fails handshake validation, undici aborts the request, but the abort is a no-op because the request is already marked completed, so the underlying `ClientHttp2Stream` is left open with no error listener. When the server then destroys the connection, the orphaned stream emits an unhandled `error` and the process exits. A remote, unauthenticated server can therefore deny service to any client that opens a WebSocket to it over HTTP/2. undici 8.11.0 and 8.11.1 are affected; the regression was introduced in 8.11.0.\n\n### Patches\n\nUpgrade to `8.11.2`.\n\n### Workarounds\n\nSet `allowH2: false` to disable HTTP/2 for WebSocket connections, or avoid opening WebSocket connections to untrusted servers, until upgrading.","status":"published","published":"2026-10-27T16:09:45Z","modified":"2026-10-27T16:09:47Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-248","CWE-754"],"updated_at":"2026-11-02T14:41:37.912288Z"}],"nvd":[{"id":"CVE-2026-109855","description":"undici is an HTTP client library for Node.js. In versions 8.11.0 and 8.11.1, its experimental WebSocket client, which is enabled by default when HTTP/2 is allowed, mishandles a failed WebSocket handshake over HTTP/2: the request is already marked completed, so the abort becomes a no-op and the underlying HTTP/2 stream is left open with no error listener. When a malicious server then destroys the connection, the orphaned stream emits an unhandled error and the Node.js process exits. A remote, unauthenticated server can therefore crash any client that opens a WebSocket to it over HTTP/2, resulting in a denial of service. The issue is fixed in undici 8.11.2, and users should upgrade to 8.11.2 or later. As a workaround, set allowH2 to false to disable HTTP/2 for WebSocket connections, or avoid opening WebSocket connections to untrusted servers.","status":"published","published":"2026-10-15T09:17:16.573Z","modified":"2026-10-19T20:46:49.4Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"secondary"}],"cwes":["CWE-248","CWE-754"],"updated_at":"2026-11-02T14:12:59.328869Z"}],"osv":[{"id":"CVE-2026-109855","title":"undici WebSocket client vulnerable to Denial of Service via failed HTTP/2 handshake","description":"undici is an HTTP client library for Node.js. In versions 8.11.0 and 8.11.1, its experimental WebSocket client, which is enabled by default when HTTP/2 is allowed, mishandles a failed WebSocket handshake over HTTP/2: the request is already marked completed, so the abort becomes a no-op and the underlying HTTP/2 stream is left open with no error listener. When a malicious server then destroys the connection, the orphaned stream emits an unhandled error and the Node.js process exits. A remote, unauthenticated server can therefore crash any client that opens a WebSocket to it over HTTP/2, resulting in a denial of service. The issue is fixed in undici 8.11.2, and users should upgrade to 8.11.2 or later. As a workaround, set allowH2 to false to disable HTTP/2 for WebSocket connections, or avoid opening WebSocket connections to untrusted servers.","status":"published","published":"2026-10-15T08:12:51.245Z","modified":"2026-10-28T02:30:44.506969006Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-248","CWE-754"],"updated_at":"2026-11-02T15:44:55.61515Z"},{"id":"DEBIAN-CVE-2026-109855","description":"undici is an HTTP client library for Node.js. In versions 8.11.0 and 8.11.1, its experimental WebSocket client, which is enabled by default when HTTP/2 is allowed, mishandles a failed WebSocket handshake over HTTP/2: the request is already marked completed, so the abort becomes a no-op and the underlying HTTP/2 stream is left open with no error listener. When a malicious server then destroys the connection, the orphaned stream emits an unhandled error and the Node.js process exits. A remote, unauthenticated server can therefore crash any client that opens a WebSocket to it over HTTP/2, resulting in a denial of service. The issue is fixed in undici 8.11.2, and users should upgrade to 8.11.2 or later. As a workaround, set allowH2 to false to disable HTTP/2 for WebSocket connections, or avoid opening WebSocket connections to untrusted servers.","status":"published","published":"2026-10-15T09:17:16.573Z","modified":"2026-11-01T05:00:06.054409287Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:45:49.381767Z"},{"id":"GHSA-qq8j-7v2v-3rwp","title":"undici WebSocket client vulnerable to Denial of Service via failed HTTP/2 handshake","description":"### Impact\n\nundici's experimental WebSocket client (enabled by default via `allowH2: true`) crashes the Node.js process when it connects to a malicious server over HTTP/2. If the server answers the WebSocket upgrade with a response that fails handshake validation, undici aborts the request, but the abort is a no-op because the request is already marked completed, so the underlying `ClientHttp2Stream` is left open with no error listener. When the server then destroys the connection, the orphaned stream emits an unhandled `error` and the process exits. A remote, unauthenticated server can therefore deny service to any client that opens a WebSocket to it over HTTP/2. undici 8.11.0 and 8.11.1 are affected; the regression was introduced in 8.11.0.\n\n### Patches\n\nUpgrade to `8.11.2`.\n\n### Workarounds\n\nSet `allowH2: false` to disable HTTP/2 for WebSocket connections, or avoid opening WebSocket connections to untrusted servers, until upgrading.","status":"published","published":"2026-10-27T16:09:45Z","modified":"2026-10-27T16:15:05.346335461Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-248","CWE-754"],"updated_at":"2026-11-02T15:46:54.760124Z"},{"id":"RHSA-2026:76677","title":"Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update","status":"published","published":"2026-10-10T10:21:53Z","modified":"2026-10-20T10:43:34.285261674Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:53:22.928316Z"},{"id":"RHSA-2026:83198","title":"Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update","status":"published","published":"2026-10-16T10:27:17Z","modified":"2026-10-20T10:31:25.036431693Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-02T15:53:23.547034Z"},{"id":"UBUNTU-CVE-2026-109855","description":"undici is an HTTP client library for Node.js. In versions 8.11.0 and 8.11.1, its experimental WebSocket client, which is enabled by default when HTTP/2 is allowed, mishandles a failed WebSocket handshake over HTTP/2: the request is already marked completed, so the abort becomes a no-op and the underlying HTTP/2 stream is left open with no error listener. When a malicious server then destroys the connection, the orphaned stream emits an unhandled error and the Node.js process exits. A remote, unauthenticated server can therefore crash any client that opens a WebSocket to it over HTTP/2, resulting in a denial of service. The issue is fixed in undici 8.11.2, and users should upgrade to 8.11.2 or later. As a workaround, set allowH2 to false to disable HTTP/2 for WebSocket connections, or avoid opening WebSocket connections to untrusted servers.","status":"published","published":"2026-10-15T09:17:00Z","modified":"2026-10-28T17:50:33Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T16:55:59.591851Z"}]}}
