{"id":"CVE-2026-69210","summary":"Http4s: WebSocket decoder accepts negative length, causing infinite decode loop","details":"Http4s is a Scala interface for HTTP services. Prior to 0.23.35 and 1.0.0-M47, WebSocket FrameTranscoder.bodyLength rejects extended payload lengths above Integer.MAX_VALUE but permits negative 64-bit lengths. A remote client that completes a WebSocket handshake through an Ember server can send such a frame, causing the decoder to return an empty frame without advancing its input. The decode loop then runs indefinitely, pins a worker at full CPU, and grows an ArrayBuffer without bound, resulting in denial of service. This issue is fixed in versions 0.23.35 and 1.0.0-M47.","aliases":["GHSA-3j86-pj9g-jchr"],"modified":"2026-09-19T03:30:52.141342291Z","published":"2026-09-15T19:19:04.868Z","database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/69xxx/CVE-2026-69210.json","cna_assigner":"GitHub_M","cwe_ids":["CWE-1284","CWE-835"]},"references":[{"type":"WEB","url":"https://github.com/http4s/http4s/releases/tag/v0.23.35"},{"type":"WEB","url":"https://github.com/http4s/http4s/releases/tag/v1.0.0-M47"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/69xxx/CVE-2026-69210.json"},{"type":"ADVISORY","url":"https://github.com/http4s/http4s/security/advisories/GHSA-3j86-pj9g-jchr"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-69210"},{"type":"FIX","url":"https://github.com/http4s/http4s/commit/c7d3ef90dc2ed1cd464968ab1b34f2f1762ddae2"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/http4s/http4s","events":[{"introduced":"0"},{"introduced":"756ce63aee681c5b632bbeafe0b8fde2f3d237f4"},{"fixed":"a83f5f4f7e14c5b4d4a91dd71b105cbbbb391298"},{"fixed":"6083780a3009bd7b26033b0ceb3d32c658b0377e"},{"fixed":"c7d3ef90dc2ed1cd464968ab1b34f2f1762ddae2"}],"database_specific":{"extracted_events":[{"introduced":"0"},{"fixed":"0.23.35"},{"introduced":"1.0.0-M1"},{"fixed":"1.0.0-M47"}],"source":["AFFECTED_FIELD","REFERENCES"]}}],"versions":["v1.0.0-M46","v0.23.34","v0.23.33","v1.0.0-M45","v0.23.32","v0.23.31","v1.0.0-M44","v0.23.30","v1.0.0-M43","v1.0.0-M42","v0.23.29","v0.23.28","v0.23.27","v1.0.0-M41","v0.23.26","v0.23.25","v0.23.24","v0.23.23","v1.0.0-M40","v0.23.22","v0.23.20","v0.23.19","v0.23.19-RC2","v0.23.19-RC1","v1.0.0-M39","v0.23.18","v1.0.0-M37","v0.23.16","v1.0.0-M36","v0.23.15","v1.0.0-M35","v0.23.14","v1.0.0-M34","v0.23.13","v1.0.0-M33","v0.23.12","v1.0.0-M32","v0.23.11","v1.0.0-M31","v0.23.10","v0.23.9","v0.23.8","v1.0.0-M30","v0.23.7","v1.0.0-M29","v0.23.6","v0.23.5","v1.0.0-M28","v0.23.3","v1.0.0-M26","v0.23.2","v1.0.0-M24","v0.23.1","v0.23.0","v1.0.0-M22","v0.23.0-M1","v1.0.0-M21","v1.0.0-M20","v1.0.0-M19","v1.0.0-M17","v1.0.0-M16","v1.0.0-M15","v1.0.0-M13","v1.0.0-M12","v1.0.0-M11","v1.0.0-M10","v1.0.0-M9","v1.0.0-M8","v1.0.0-M7","v1.0.0-M6","v1.0.0-M5","v1.0.0-M4","v1.0.0-M3","v1.0.0-M2","v1.0.0-M1"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-69210.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}]}