{"id":"CVE-2026-107909","state":"PUBLISHED","title":"Pre-authentication heap out-of-bounds write in FalkorDB Bolt WebSocket frame handling via unbounded payload length","description":"A heap-based out-of-bounds write in the ws_read_frame function (src/bolt/ws.c) and the buffer_apply_mask function (src/bolt/buffer.c) in FalkorDB before 4.20.0 allows a remote unauthenticated attacker to cause a denial of service and possibly corrupt heap memory by sending a WebSocket frame with a 64-bit extended payload length to the Bolt port. The payload length is not bounded, and the only bounds check in buffer_apply_mask is an ASSERT(), which is compiled out in release builds, so the function XORs memory beyond the end of the receive buffer with the attacker-supplied mask key. Only deployments that enable the Bolt endpoint (BOLT_PORT, disabled by default) are affected.","publishedAt":"2026-10-09T05:08:12.082Z","updatedAt":"2026-10-15T15:54:47.531Z","severity":{"score":8.8,"label":"High","version":"4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N","source":"securin"},"assigner":"securin","products":["FalkorDB FalkorDB"],"affected":[{"vendor":"FalkorDB","product":"FalkorDB","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"4.20.0","versionType":"semver"}],"collectionURL":"https://github.com/FalkorDB/FalkorDB","repo":"https://github.com/FalkorDB/FalkorDB","modules":["Bolt protocol endpoint"],"programFiles":["src/bolt/ws.c","src/bolt/buffer.c"],"programRoutines":[{"name":"ws_read_frame"},{"name":"buffer_apply_mask"}],"cpes":["cpe:2.3:a:falkordb:falkordb:*:*:*:*:*:*:*:*"]}],"references":["https://github.com/FalkorDB/FalkorDB/pull/2170","https://github.com/FalkorDB/FalkorDB/commit/0b11a00b34b25c4d4fdfe55f0a35c8a00593bd7d","https://github.com/FalkorDB/FalkorDB/releases/tag/v4.20.0"],"weaknesses":["CWE-787"],"ingestedAt":"2026-10-29T20:10:23.711Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/107xxx/CVE-2026-107909.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-107909","state":"PUBLISHED","datePublished":"2026-10-09T05:08:12.082Z","dateUpdated":"2026-10-15T15:54:47.531Z","assignerShortName":"securin","assignerOrgId":"33c584b5-0579-4c06-b2a0-8d8329fcab9c","dateReserved":"2026-10-09T04:54:48.677Z"},"containers":{"cna":{"title":"Pre-authentication heap out-of-bounds write in FalkorDB Bolt WebSocket frame handling via unbounded payload length","descriptions":[{"lang":"en","value":"A heap-based out-of-bounds write in the ws_read_frame function (src/bolt/ws.c) and the buffer_apply_mask function (src/bolt/buffer.c) in FalkorDB before 4.20.0 allows a remote unauthenticated attacker to cause a denial of service and possibly corrupt heap memory by sending a WebSocket frame with a 64-bit extended payload length to the Bolt port. The payload length is not bounded, and the only bounds check in buffer_apply_mask is an ASSERT(), which is compiled out in release builds, so the function XORs memory beyond the end of the receive buffer with the attacker-supplied mask key. Only deployments that enable the Bolt endpoint (BOLT_PORT, disabled by default) are affected."}],"affected":[{"vendor":"FalkorDB","product":"FalkorDB","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"4.20.0","versionType":"semver"}],"collectionURL":"https://github.com/FalkorDB/FalkorDB","repo":"https://github.com/FalkorDB/FalkorDB","modules":["Bolt protocol endpoint"],"programFiles":["src/bolt/ws.c","src/bolt/buffer.c"],"programRoutines":[{"name":"ws_read_frame"},{"name":"buffer_apply_mask"}],"cpes":["cpe:2.3:a:falkordb:falkordb:*:*:*:*:*:*:*:*"]}],"references":[{"url":"https://github.com/FalkorDB/FalkorDB/pull/2170","name":"FalkorDB PR #2170","tags":["patch"]},{"url":"https://github.com/FalkorDB/FalkorDB/commit/0b11a00b34b25c4d4fdfe55f0a35c8a00593bd7d","name":"Fix commit","tags":["patch"]},{"url":"https://github.com/FalkorDB/FalkorDB/releases/tag/v4.20.0","name":"FalkorDB 4.20.0 release notes","tags":["release-notes"]}],"metrics":[{"format":"CVSS","scenarios":[{"lang":"en","value":"GENERAL"}],"cvssV4_0":{"version":"4.0","vectorString":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N","baseScore":8.8,"baseSeverity":"HIGH"}},{"format":"CVSS","scenarios":[{"lang":"en","value":"GENERAL"}],"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H","baseScore":9.1,"baseSeverity":"CRITICAL"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-787","lang":"en","type":"CWE","description":"CWE-787 Out-of-bounds Write"}]}],"providerMetadata":{"shortName":"securin","orgId":"33c584b5-0579-4c06-b2a0-8d8329fcab9c","dateUpdated":"2026-10-09T05:08:12.082Z"},"solutions":[{"lang":"en","value":"Upgrade FalkorDB to version 4.20.0 or later. Bolt protocol support, including the code affected by this issue, was removed in 4.20.0."}],"workarounds":[{"lang":"en","value":"Leave the Bolt endpoint disabled (do not set the BOLT_PORT module configuration; it is disabled by default), or restrict network access to the Bolt port to trusted clients."}],"credits":[{"lang":"en","type":"finder","value":"Arjun Basnet from Securin"}],"timeline":[{"time":"2026-06-29T00:00:00.000Z","lang":"en","value":"Reported to FalkorDB"},{"time":"2026-06-29T00:00:00.000Z","lang":"en","value":"Vendor acknowledged the report"},{"time":"2026-07-08T00:00:00.000Z","lang":"en","value":"Vendor removed Bolt protocol support (PR #2170)"},{"time":"2026-07-13T00:00:00.000Z","lang":"en","value":"FalkorDB 4.20.0 released without Bolt support"},{"time":"2026-09-27T00:00:00.000Z","lang":"en","value":"Coordinated disclosure period ended"}],"source":{"discovery":"EXTERNAL"},"impacts":[{"capecId":"CAPEC-100","descriptions":[{"lang":"en","value":"CAPEC-100 Overflow Buffers"}]}]},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-10-15T15:49:07.135012Z","id":"CVE-2026-107909","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-15T15:54:47.531Z"}}]}}}