CVE-2023-48951

7.5 HIGH

📋 TL;DR

A vulnerability in the box_equal function of OpenLink Virtuoso OpenSource v7.2.11 allows attackers to cause Denial of Service (DoS) by executing a SELECT statement. This affects systems running vulnerable versions of Virtuoso database software, potentially disrupting database availability.

💻 Affected Systems

Products:
  • OpenLink Virtuoso OpenSource
Versions: v7.2.11 specifically mentioned; earlier versions may be affected.
Operating Systems: All platforms running Virtuoso
Default Config Vulnerable: ⚠️ Yes
Notes: Any Virtuoso instance with SQL query execution capability is vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database unavailability, disrupting all dependent applications and services.

🟠

Likely Case

Database service crashes requiring restart, causing temporary application downtime.

🟢

If Mitigated

Minimal impact with proper monitoring and rapid restart capabilities.

🌐 Internet-Facing: MEDIUM - Exploitable via SQL queries but requires database access.
🏢 Internal Only: MEDIUM - Internal users with database access could trigger the DoS.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: LOW - Requires only a SELECT statement execution.

Exploitation requires ability to execute SQL queries against the database.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Check GitHub issue #1177 for specific fix version.

Vendor Advisory: https://github.com/openlink/virtuoso-opensource/issues/1177

Restart Required: Yes

Instructions:

1. Check GitHub issue #1177 for patch details. 2. Update to patched version. 3. Restart Virtuoso service.

🔧 Temporary Workarounds

Restrict SQL Query Access

all

Limit database user permissions to prevent execution of problematic SELECT statements.

-- Use Virtuoso SQL to review and restrict user privileges

🧯 If You Can't Patch

  • Implement strict database access controls and monitoring.
  • Deploy database load balancers to mitigate single-point failures.

🔍 How to Verify

Check if Vulnerable:

Check Virtuoso version; if running v7.2.11, assume vulnerable.

Check Version:

SELECT sys_stat('st_dbms_version');

Verify Fix Applied:

Verify updated version and test SELECT statement functionality.

📡 Detection & Monitoring

Log Indicators:

  • Database crash logs
  • Unexpected service restarts
  • Error messages related to box_equal function

Network Indicators:

  • Sudden drop in database connections
  • Increased failed query attempts

SIEM Query:

source="virtuoso.log" AND ("crash" OR "segfault" OR "box_equal")

🔗 References

📤 Share & Export