CVE-2023-47004

8.8 HIGH

📋 TL;DR

This is an authenticated buffer overflow vulnerability in RedisGraph that allows remote code execution. Attackers with valid authentication can exploit this to execute arbitrary code on affected RedisGraph servers. Organizations using RedisGraph versions 2.x through 2.12.8 are affected.

💻 Affected Systems

Products:
  • RedisGraph
Versions: 2.x through 2.12.8
Operating Systems: Linux, Unix-like systems, Windows
Default Config Vulnerable: ⚠️ Yes
Notes: Requires valid authentication to exploit. RedisGraph must be enabled and accessible.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full system compromise with attacker gaining root/system-level access to execute arbitrary code, potentially leading to data theft, ransomware deployment, or complete system takeover.

🟠

Likely Case

Privilege escalation leading to unauthorized data access, service disruption, or lateral movement within the network.

🟢

If Mitigated

Limited impact due to network segmentation, minimal privileges, and proper authentication controls restricting access to authorized users only.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires valid authentication credentials. Buffer overflow occurs in code logic after authentication.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.12.9

Vendor Advisory: https://github.com/RedisGraph/RedisGraph/issues/3178

Restart Required: Yes

Instructions:

1. Stop RedisGraph service. 2. Update RedisGraph to version 2.12.9 or later. 3. Restart RedisGraph service. 4. Verify the update was successful.

🔧 Temporary Workarounds

Restrict Network Access

linux

Limit RedisGraph access to trusted networks only using firewall rules.

iptables -A INPUT -p tcp --dport 6379 -s trusted_ip_range -j ACCEPT
iptables -A INPUT -p tcp --dport 6379 -j DROP

Implement Strong Authentication

all

Enforce strong, unique passwords and consider multi-factor authentication where possible.

🧯 If You Can't Patch

  • Implement strict network segmentation to isolate RedisGraph instances
  • Apply principle of least privilege to RedisGraph service accounts and authentication

🔍 How to Verify

Check if Vulnerable:

Check RedisGraph version: redis-cli GRAPH.QUERY G "CALL dbms.components() YIELD name, versions RETURN name, versions"

Check Version:

redis-cli GRAPH.QUERY G "CALL dbms.components() YIELD name, versions RETURN name, versions"

Verify Fix Applied:

Verify version is 2.12.9 or higher using the same command and ensure no buffer overflow occurs during normal operations.

📡 Detection & Monitoring

Log Indicators:

  • Unusual authentication attempts
  • Large or malformed queries to RedisGraph
  • Process crashes or abnormal restarts of RedisGraph

Network Indicators:

  • Unusual traffic patterns to RedisGraph port (default 6379)
  • Suspicious payloads in RedisGraph queries

SIEM Query:

source="redisgraph.log" AND ("buffer overflow" OR "segmentation fault" OR "authentication failed" OR "malformed query")

🔗 References

📤 Share & Export