CVE-2025-0792
Executive Summary
CVE-2025-0792 is a critical SQL injection vulnerability in ESAFENET CDG V5, specifically in the /sdTodoDetail.jsp endpoint. The flaw allows remote attackers to manipulate the flowId parameter, leading to unauthorized database access. No patch has been released, and the vendor has not responded to disclosure attempts. The exploit is publicly available, increasing the risk of active exploitation. This vulnerability is classified under MITRE Tactic T1190 (Exploit Public-Facing Application) and CWE-89 (SQL Injection). Immediate mitigation measures are required.
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
CVSS Breakdown & Threat Level
While no official CVSS vector is provided, based on the critical classification and remote exploitability, a reasonable assessment is:
- 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) – Vulnerability does not affect other components.
- Confidentiality (C): High (H) – Full database read access.
- Integrity (I): High (H) – Data can be modified.
- Availability (A): High (H) – Potential for denial of service.
Estimated CVSS Score: 9.8 (Critical)
Deep Dive & Mechanics
The vulnerability resides in the sdTodoDetail.jsp page of ESAFENET CDG V5. The flowId parameter is directly concatenated into SQL queries without sanitization or parameterization. An attacker can inject malicious SQL commands by crafting a payload such as:
' OR '1'='1' --
This bypasses authentication or extracts data. The lack of input validation and prepared statements makes the application susceptible to time-based, error-based, or UNION-based SQL injection attacks. The exploit is trivial to execute and does not require authentication.
Vulnerable vs. Patched Code
Vulnerable Code (Conceptual):
String query = "SELECT * FROM todo WHERE flowId = " + request.getParameter("flowId");
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(query);
Patched Code (Conceptual):
String query = "SELECT * FROM todo WHERE flowId = ?";
PreparedStatement pstmt = connection.prepareStatement(query);
pstmt.setString(1, request.getParameter("flowId"));
ResultSet rs = pstmt.executeQuery();
The fix requires using parameterized queries (prepared statements) to separate SQL logic from user input.
Exploitation & Lab Setup
Red Team
- Setup: Deploy a vulnerable instance of ESAFENET CDG V5 in an isolated lab.
- Reconnaissance: Identify the
/sdTodoDetail.jspendpoint. - Exploit: Use a tool like
sqlmapor manual injection:
Manual payload:sqlmap -u "http://target/sdTodoDetail.jsp?flowId=1" --batch --dbshttp://target/sdTodoDetail.jsp?flowId=1' UNION SELECT 1,2,3,4,5 -- - Post-Exploitation: Extract database contents, escalate privileges, or pivot.
Blue Team
- Detection: Monitor for SQL injection patterns in web logs (e.g.,
' OR,UNION SELECT,--). - Mitigation: Implement a Web Application Firewall (WAF) rule to block suspicious
flowIdvalues. - Harden: Apply input validation and use parameterized queries in the application code.
Indicators of Compromise (IOCs)
- Network: HTTP requests to
/sdTodoDetail.jspwith abnormalflowIdparameters containing SQL keywords (OR,UNION,SELECT,--,#). - Logs: Database error messages in application logs (e.g., "You have an error in your SQL syntax").
- File: Unusual database dump files or scripts on the server.
- Behavior: Unexpected database queries or high CPU usage on the database server.
Detection Engineering
YARA Rule
rule CVE_2025_0792_SQLi {
meta:
description = "Detects SQL injection attempts targeting CVE-2025-0792"
author = "Valters IT"
date = "2025-04-01"
strings:
$sqli1 = "flowId=" nocase
$sqli2 = "' OR " nocase
$sqli3 = "UNION SELECT" nocase
$sqli4 = "1=1" nocase
condition:
all of ($sqli*) and #sqli1 > 0
}
Sigma Rule
title: SQL Injection Attempt on ESAFENET CDG V5
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects SQL injection attempts targeting /sdTodoDetail.jsp
logsource:
category: webserver
product: apache
detection:
selection:
cs-uri-query|contains:
- "flowId="
- "' OR "
- "UNION SELECT"
- "1=1"
condition: selection
falsepositives:
- Legitimate use of flowId with special characters (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-0792 SQL Injection Attempt"; flow:to_server; content:"/sdTodoDetail.jsp"; http_uri; content:"flowId="; http_uri; pcre:"/(\x27|\x22)\s*(OR|UNION|SELECT|1=1)/i"; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Disable or restrict access to
/sdTodoDetail.jspif not essential. - Short-term: Implement a WAF rule to block SQL injection patterns.
- Long-term: Apply parameterized queries in the application code. Since the vendor is unresponsive, consider migrating to a supported alternative.
- Monitoring: Enable detailed logging and alerting for SQL injection attempts.
- Backup: Ensure regular database backups to recover from potential data loss.
Valters IT
Securing Digital Frontiers