CVE-2026-107911 Overview
CVE-2026-107911 is a type confusion vulnerability [CWE-843] in FalkorDB versions prior to 4.20.0. The flaw resides in the _read_flags function within src/commands/cmd_dispatcher.c. A remote authenticated attacker with permission to run GRAPH.QUERY can trigger the issue by supplying the --bolt argument, causing FalkorDB to cast an attacker-controlled Redis string object to a Bolt client structure. The result-set code then dereferences pointers read from that object. Successful exploitation leads to denial of service and may enable memory disclosure or corruption. The argument is parsed even when the Bolt endpoint is disabled, so default FalkorDB configurations remain exposed.
Critical Impact
Authenticated attackers with GRAPH.QUERY access can crash the FalkorDB process and potentially read or corrupt memory contents through unchecked pointer dereferences.
Affected Products
- FalkorDB versions prior to 4.20.0
- Default FalkorDB configurations (vulnerable even with Bolt endpoint disabled)
- Deployments exposing GRAPH.QUERY to authenticated users
Discovery Timeline
- 2026-10-09 - CVE-2026-107911 published to NVD
- 2026-10-09 - Last updated in NVD database
- FalkorDB v4.20.0 - Vendor releases patch removing Bolt support (GitHub Release v4.20.0)
Technical Details for CVE-2026-107911
Vulnerability Analysis
The vulnerability stems from improper type validation in the command dispatcher. When FalkorDB parses command arguments in _read_flags, it accepts a --bolt flag from any authenticated client. The code then treats the next argument, which is a standard Redis string object, as if it were a bolt_client_t structure pointer. No validation confirms the origin or type of the object before this cast occurs.
Downstream result-set serialization code dereferences fields from the forged Bolt client structure. Because an attacker controls the contents of the Redis string, they control the pointer values that the server dereferences. This produces segmentation faults in the simplest case and can be refined to read arbitrary memory regions. Reference the GitHub Pull Request Discussion for maintainer analysis.
Root Cause
The root cause is a type confusion [CWE-843] between Redis string objects and Bolt client structures. The dispatcher trusts the --bolt flag as evidence that the subsequent argument is a legitimate internal structure. FalkorDB performs no provenance check to distinguish structures originating from the Bolt listener thread from arbitrary client-supplied strings.
Attack Vector
An attacker authenticates to the Redis instance hosting FalkorDB and issues a GRAPH.QUERY command with the --bolt flag followed by a crafted string payload. Because argument parsing runs regardless of whether the Bolt endpoint is enabled, the attack path exists in default installations. Exploitation does not require user interaction.
// Patch excerpt: removal of Bolt API header (src/bolt/bolt_api.h)
-/*
- * Copyright FalkorDB Ltd. 2023 - present
- * Licensed under the Server Side Public License v1 (SSPLv1).
- */
-
-#pragma once
-
-#include "redismodule.h"
-
-// listen to bolt port
-// add the socket to the event loop
-int BoltApi_Register
-(
- RedisModuleCtx *ctx // redis context
-);
-
-// free connected clients
-void BoltApi_Unregister
-(
- void
-);
// Source: https://github.com/FalkorDB/FalkorDB/commit/0b11a00b34b25c4d4fdfe55f0a35c8a00593bd7d
The patch removes the entire Bolt subsystem, including bolt_api.h and bolt_client.h, eliminating the vulnerable argument parsing path.
Detection Methods for CVE-2026-107911
Indicators of Compromise
- GRAPH.QUERY commands containing the --bolt argument from client sessions
- Unexpected FalkorDB process crashes or segmentation faults in Redis logs
- Redis module error entries referencing _read_flags or Bolt client structures
- Unusual Redis string arguments containing binary pointer-like data submitted to graph queries
Detection Strategies
- Audit Redis command logs for GRAPH.QUERY invocations that include the --bolt token in argument lists
- Monitor FalkorDB module version strings and flag any instance running a release older than 4.20.0
- Correlate client authentication events with subsequent process restarts to identify crash-triggering sessions
Monitoring Recommendations
- Enable Redis MONITOR or slowlog capture in test environments to validate client query patterns
- Forward Redis and FalkorDB stderr output to centralized logging for crash signature analysis
- Alert on repeated FalkorDB module reload events, which indicate crash-restart loops
How to Mitigate CVE-2026-107911
Immediate Actions Required
- Upgrade FalkorDB to version 4.20.0 or later, which removes the vulnerable Bolt argument handling
- Restrict GRAPH.QUERY permissions using Redis ACLs so only trusted service accounts can issue graph commands
- Rotate credentials for any Redis users whose access to FalkorDB cannot be immediately restricted
- Review network exposure of the Redis port and limit it to application tier hosts only
Patch Information
The fix is delivered in FalkorDB 4.20.0 via commit 0b11a00b34b25c4d4fdfe55f0a35c8a00593bd7d, which removes Bolt protocol support entirely. Review the GitHub Commit Details and the GitHub Pull Request Discussion for the complete patch set. Download the fixed release from the GitHub Release v4.20.0 page.
Workarounds
- Deny GRAPH.QUERY for untrusted Redis users through ACL rules until the upgrade is applied
- Place FalkorDB instances behind authenticated proxies that strip or reject arguments containing --bolt
- Isolate FalkorDB on dedicated hosts so a crash does not disrupt co-located Redis workloads
# Example Redis ACL restricting GRAPH.QUERY to a dedicated service account
ACL SETUSER appsvc on >StrongPasswordHere ~* +@read +@write +GRAPH.QUERY
ACL SETUSER readonly on >AnotherPassword ~* +@read -GRAPH.QUERY
CONFIG REWRITE
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

