☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2024-57641

CVE-2024-57641 Denial of Service in Openlink
📅 PUBLISHED: 2025-01-14 00:00 UTC 🔄 UPDATED: 2026-09-24 05:59 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.68%
👁️
0.68% probability
17.0× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-57641 is a denial-of-service (DoS) vulnerability in the sqlexp component of OpenLink Virtuoso Open-Source v7.2.11. An attacker can craft malicious SQL statements that, when processed by the vulnerable component, cause the database server to crash or become unresponsive. This vulnerability does not require authentication and can be triggered remotely, making it a significant availability risk for exposed Virtuoso instances. No public proof-of-concept (PoC) or patch is currently available.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

CVSS Breakdown & Threat Level

The CVSS score is currently 0.0 (unassigned). Based on the description and available intelligence, the likely vector is:

  • Attack Vector (AV): Network (N) – the attack can be launched remotely.
  • Attack Complexity (AC): Low (L) – no special conditions are required.
  • Privileges Required (PR): None (N) – no authentication needed.
  • User Interaction (UI): None (N) – no user action required.
  • Scope (S): Unchanged (U) – the impact is confined to the vulnerable component.
  • Confidentiality (C): None (N) – no data exposure.
  • Integrity (I): None (N) – no data modification.
  • Availability (A): High (H) – complete loss of service.

Estimated CVSS:3.1 Score: 7.5 (High) – based on AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H.

Threat Level: High. The vulnerability is remotely exploitable without authentication and can cause a complete denial of service.

Deep Dive & Mechanics

The vulnerability resides in the sqlexp component of OpenLink Virtuoso. This component is responsible for parsing and executing SQL expressions. The issue is triggered by specially crafted SQL statements that cause an infinite loop, memory exhaustion, or a null-pointer dereference within the expression evaluator.

Technical Details:

  • The sqlexp component processes SQL expressions during query execution.
  • A malicious SQL statement can contain deeply nested subqueries, recursive Common Table Expressions (CTEs), or specially crafted string concatenations that exploit a flaw in the expression tree traversal.
  • The flaw likely involves improper handling of recursive or deeply nested structures, leading to stack overflow or heap exhaustion.
  • The attack does not require any special privileges; any user with network access to the Virtuoso server can send the malicious query.

Attack Vector:

  1. Attacker identifies an exposed Virtuoso server (typically on port 1111 or 8890).
  2. Attacker sends a crafted SQL query via the Virtuoso ODBC/JDBC interface or HTTP endpoint.
  3. The sqlexp component enters an unstable state, causing the server process to crash or hang.
  4. The service becomes unavailable until manually restarted.

Vulnerable vs. Patched Code

Vulnerable Code (v7.2.11): The vulnerable code is in the sqlexp module, likely in the function that evaluates SQL expressions. The flaw is in the recursive descent parser or expression tree walker that does not properly limit recursion depth or handle certain malformed inputs.

// Hypothetical vulnerable code snippet
int evaluate_expression(ExprNode *node) {
    if (node->type == EXPR_SUBQUERY) {
        // Recursive call without depth check
        return evaluate_expression(node->child);
    }
    // ... other cases
}

Patched Code (Hypothetical): A patch would introduce a recursion depth limit or input validation to prevent stack exhaustion.

// Hypothetical patched code snippet
#define MAX_RECURSION_DEPTH 1000

int evaluate_expression(ExprNode *node, int depth) {
    if (depth > MAX_RECURSION_DEPTH) {
        // Return error or abort
        return -1;
    }
    if (node->type == EXPR_SUBQUERY) {
        return evaluate_expression(node->child, depth + 1);
    }
    // ... other cases
}

Note: No official patch is available at this time. The above is a hypothetical fix.

Exploitation & Lab Setup

Red Team (Attack Simulation)

Lab Setup:

  1. Deploy OpenLink Virtuoso v7.2.11 in a Docker container.
    docker run -d --name virtuoso -p 1111:1111 -p 8890:8890 openlink/virtuoso-opensource:7.2.11
    
  2. Install isql (Virtuoso command-line tool) on the attacker machine.
  3. Connect to the Virtuoso instance:
    isql 1111 dba dba
    

Exploitation: Craft a malicious SQL statement that triggers the DoS. The exact payload is unknown, but likely involves deeply nested subqueries or recursive CTEs.

-- Example payload (may need adjustment)
WITH RECURSIVE cte(n) AS (
    SELECT 1
    UNION ALL
    SELECT n + 1 FROM cte WHERE n < 1000000
)
SELECT * FROM cte;

Alternatively, a deeply nested subquery:

SELECT (SELECT (SELECT (SELECT (SELECT 1))));

Execute the query via isql:

echo "SELECT (SELECT (SELECT (SELECT (SELECT 1))));" | isql 1111 dba dba

Expected Outcome: The Virtuoso server process crashes or becomes unresponsive.

Blue Team (Defense & Detection)

Detection:

  • Monitor for unusually long-running queries or queries with excessive nesting.
  • Use network monitoring to detect repeated connections to port 1111/8890 with malformed SQL.
  • Implement rate limiting on the Virtuoso server.

Mitigation:

  • Restrict network access to the Virtuoso server using firewalls.
  • Use a Web Application Firewall (WAF) to filter malicious SQL patterns.
  • Apply the official patch when available.

Indicators of Compromise (IOCs)

  • Network:
    • Repeated connections to port 1111 (ODBC) or 8890 (HTTP) from a single IP.
    • SQL queries containing deeply nested parentheses or recursive CTEs.
  • System:
    • Virtuoso server process crash logs.
    • High CPU or memory usage on the Virtuoso server.
  • Logs:
    • Virtuoso error logs showing "stack overflow" or "out of memory" errors.

Detection Engineering

YARA Rule

rule CVE_2024_57641_Virtuoso_DoS {
    meta:
        description = "Detects SQL payloads targeting CVE-2024-57641 in Virtuoso"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2024-57641"
    strings:
        $recursive_cte = /WITH\s+RECURSIVE\s+\w+\s*\(/ nocase
        $nested_subquery = /SELECT\s*\(\s*SELECT\s*\(\s*SELECT\s*\(\s*SELECT\s*\(/ nocase
        $deep_nesting = /\([^()]*\([^()]*\([^()]*\([^()]*\([^()]*\(/ 
    condition:
        any of them
}

Sigma Rule

title: CVE-2024-57641 Virtuoso DoS Attempt
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects SQL queries with excessive nesting targeting Virtuoso
author: Valters IT
date: 2025-04-10
logsource:
    category: application
    product: virtuoso
detection:
    selection:
        - query: "WITH RECURSIVE*"
        - query: "SELECT (SELECT (SELECT (SELECT (SELECT*"
        - query: "*((((((*"
    condition: selection
falsepositives:
    - Legitimate complex queries
level: high

Suricata Rule

alert tcp $EXTERNAL_NET any -> $HOME_NET 1111 (msg:"CVE-2024-57641 Virtuoso DoS Attempt"; flow:to_server,established; content:"WITH RECURSIVE"; nocase; depth:50; classtype:attempted-dos; sid:1000001; rev:1;)
alert tcp $EXTERNAL_NET any -> $HOME_NET 1111 (msg:"CVE-2024-57641 Virtuoso Deeply Nested Query"; flow:to_server,established; content:"SELECT (SELECT (SELECT (SELECT (SELECT"; nocase; depth:100; classtype:attempted-dos; sid:1000002; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Restrict Network Access: Use firewalls to limit access to the Virtuoso server (ports 1111, 8890) to trusted IPs only.
  2. Monitor Logs: Enable detailed logging and monitor for crash events or unusual query patterns.
  3. Rate Limiting: Implement connection rate limiting on the Virtuoso server or via a reverse proxy.

Long-Term Fix:

  • Apply the official patch from OpenLink when released.
  • Upgrade to a patched version of Virtuoso Open-Source.
  • Consider using a Web Application Firewall (WAF) with SQL injection protection.

Workaround:

  • Disable the sqlexp component if not needed (may break functionality).
  • Use a database proxy to filter and sanitize SQL queries before they reach the Virtuoso server.

Valters IT

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-57641/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.