CVE-2024-57652
Executive Summary
CVE-2024-57652 is a denial-of-service (DoS) vulnerability in the numeric_to_dv component of OpenLink Virtuoso Open-Source version 7.2.11. An attacker can trigger a DoS condition by sending crafted SQL statements, leading to resource exhaustion or application crash. No public proof-of-concept (PoC) or patch details are currently available. The vulnerability has a CVSS score of 0.0 (unscored) and an EPSS score of 0.0%, indicating low exploitation activity at this time.
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.
No signup required
Supply Chain & Package Security
This vulnerability affects the OpenLink Virtuoso Open-Source package, which is a database and application server. Organizations using this software should monitor for updates and apply patches when available. No known supply chain attacks have been reported for this CVE.
CVSS Breakdown & Threat Level
- CVSS Score: 0.0 (Unscored)
- Attack Vector: Network (likely)
- Attack Complexity: Low (likely)
- Privileges Required: None (likely)
- User Interaction: None (likely)
- Scope: Unchanged (likely)
- Confidentiality Impact: None
- Integrity Impact: None
- Availability Impact: High
- Threat Level: Medium (due to DoS potential)
Deep Dive & Mechanics
The vulnerability resides in the numeric_to_dv function within the Virtuoso Open-Source codebase. This function is responsible for converting numeric data types to internal data values. When a specially crafted SQL statement is executed, it can cause the function to enter an infinite loop, consume excessive memory, or trigger a segmentation fault, resulting in a denial of service.
The exact mechanism is not publicly documented, but based on the description, it likely involves improper handling of edge cases in numeric conversion, such as extremely large numbers, malformed strings, or boundary conditions. The attacker does not need authentication if the SQL interface is exposed.
Vulnerable vs. Patched Code
No patched version is available. The vulnerable code is in the numeric_to_dv function of Virtuoso Open-Source v7.2.11. A patch would likely involve adding input validation, bounds checking, and safe conversion routines to prevent infinite loops or crashes.
Exploitation & Lab Setup
Red Team
- Setup: Deploy Virtuoso Open-Source v7.2.11 on a test server.
- Craft SQL: Create a SQL statement that triggers the vulnerability, e.g.,
SELECT numeric_to_dv('...')with a malformed input. - Execute: Send the crafted SQL to the server via a client or HTTP endpoint.
- Observe: Monitor server logs for crashes or resource exhaustion.
Example (hypothetical):
SELECT numeric_to_dv('99999999999999999999999999999999999999999999999999');
Blue Team
- Monitor: Watch for unusual SQL queries with extremely long numeric strings or malformed inputs.
- Rate Limit: Implement rate limiting on SQL endpoints.
- Input Validation: Sanitize and validate all inputs to numeric conversion functions.
- Patch: Apply vendor patches when available.
Indicators of Compromise (IOCs)
- Log Entries: Repeated SQL errors related to
numeric_to_dvor numeric conversion. - Network Traffic: SQL queries containing extremely long numeric strings.
- System Metrics: High CPU or memory usage on the Virtuoso server.
- Crash Dumps: Core dumps or segmentation faults in Virtuoso processes.
Detection Engineering
YARA Rule
rule CVE_2024_57652_Virtuoso_DoS {
meta:
description = "Detects SQL statements targeting numeric_to_dv DoS vulnerability"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-57652"
strings:
$s1 = "numeric_to_dv" nocase
$s2 = "SELECT" nocase
$s3 = /[0-9]{50,}/ // Long numeric string
condition:
all of ($s1, $s2) and $s3
}
Sigma Rule
title: CVE-2024-57652 Virtuoso numeric_to_dv DoS
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects SQL queries with long numeric strings targeting numeric_to_dv
author: Valters IT
date: 2025-04-10
logsource:
category: application
product: virtuoso
detection:
selection:
query|contains: "numeric_to_dv"
query|re: '[0-9]{50,}'
condition: selection
falsepositives:
- Legitimate large number processing
level: medium
Suricata Rule
alert tcp any any -> any 1111 (msg:"CVE-2024-57652 Virtuoso numeric_to_dv DoS"; flow:to_server; content:"numeric_to_dv"; nocase; pcre:"/[0-9]{50,}/"; sid:1000001; rev:1;)
Remediation & Mitigation
- Patch: Apply vendor patches when released. Monitor OpenLink for updates.
- Workaround: Disable or restrict access to the
numeric_to_dvfunction if not needed. - Firewall: Restrict network access to the Virtuoso server to trusted IPs only.
- Input Validation: Implement application-level validation to reject malformed numeric inputs.
- Monitoring: Enable logging and alerting for unusual SQL queries.
Valters IT
Securing Digital Frontiers