CVE-2026-108778
Executive Summary
CVE-2026-108778 is a SQL injection vulnerability in the WmInQmIController.list function of the JEEWMS warehouse management system, affecting versions up to 2026.09.27-W39. A remote attacker with low privileges can manipulate the searchstr argument to inject arbitrary SQL, leading to unauthorized data disclosure and integrity compromise. The exploit has been publicly disclosed, but the vendor has not released a patch, leaving all deployments exposed.
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
Technical Analysis
The vulnerability resides in the Inbound Quality Check Pda Interface component of JEEWMS, specifically within the list function of WmInQmIController.java. The searchstr parameter, used to filter or search records, is improperly sanitized before being incorporated into a SQL query. This allows an authenticated attacker (or unauthenticated if the endpoint is exposed) to inject malicious SQL statements.
- Vulnerability Class: SQL Injection (CWE-74: Improper Neutralization of Special Elements in Output Used by a Downstream Component)
- Attack Vector: Network (AV:N)
- Privileges Required: Low (PR:L) — the attacker needs some level of access to the PDA interface, likely authenticated as a low-privileged user.
- Impact: Confidentiality, Integrity, and Availability are all partially impacted (C:L/I:L/A:L), as the injection could allow reading sensitive database contents, modifying data, or causing denial of service.
- Exploitability: Public exploit exists, increasing the likelihood of active exploitation.
The lack of vendor response and patch means that any JEEWMS instance with the vulnerable component exposed is at risk. The specific SQL query structure is not detailed in the NVD description, but the flaw is a classic injection via a search parameter.
Exploitation Scenarios
1. Reconnaissance: Attackers scan for JEEWMS instances using Shodan dorks such as http.title:"JEEWMS" or by fingerprinting the PDA interface. The publicly disclosed exploit may include the exact endpoint path, but based on the controller name, the endpoint is likely reachable via HTTP requests to the JEEWMS web application.
2. Triggering the Flaw: The attacker sends a crafted HTTP request to the list function, injecting SQL syntax into the searchstr parameter. For example, a payload like ' OR '1'='1 or UNION-based queries could be used to manipulate the underlying SQL statement. The exact HTTP method (GET/POST) and parameter name (searchstr) are known from the description.
3. Payload Execution: The injected SQL is executed by the backend database. Depending on database permissions, the attacker could extract data from any table, bypass authentication, or execute stored procedures. The public exploit may provide ready-to-use payloads.
4. Post-Exploitation: With successful injection, the attacker can:
- Exfiltrate sensitive data (user credentials, inventory details, supplier information).
- Modify or delete records, disrupting warehouse operations.
- Potentially escalate privileges within the application or pivot to other systems if the database user has elevated rights.
- Use the compromised system as a foothold for further network penetration.
No public PoC details are available beyond the disclosure, but the attack chain is inferred from the SQL injection class and the specific parameter.
Impact Assessment
Business Impact: JEEWMS is used for warehouse management, handling critical inventory, shipping, and receiving data. A SQL injection can lead to data breaches, operational disruption, and regulatory compliance violations (e.g., GDPR, HIPAA if applicable). The partial impacts on confidentiality, integrity, and availability (CVSS 6.3) reflect that while full system takeover is not guaranteed, significant damage is possible.
Affected Systems: All JEEWMS deployments up to version 2026.09.27-W39. The Inbound Quality Check Pda Interface is likely used by warehouse staff on mobile devices, increasing the attack surface.
Blast Radius: The vulnerability could affect the entire JEEWMS database, impacting all modules and users. If the database is shared with other applications, the breach could extend beyond JEEWMS.
CVSS Subscores:
- Attack Vector: Network (AV:N) — exploitable remotely.
- Attack Complexity: Low (AC:L) — no special conditions.
- Privileges Required: Low (PR:L) — attacker needs basic access.
- User Interaction: None (UI:N) — no victim action required.
- Scope: Unchanged (S:U) — impact confined to the vulnerable component.
- Confidentiality: Low (C:L) — some data exposure.
- Integrity: Low (I:L) — some data modification.
- Availability: Low (A:L) — potential for partial DoS.
Detection Guidance
Sigma Rule
title: JEEWMS SQL Injection Attempt via WmInQmIController.list
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects SQL injection attempts targeting the searchstr parameter in JEEWMS WmInQmIController.list
author: Threat Intelligence
date: 2026/10/10
logsource:
category: webserver
product: apache
service: access_combined
detection:
selection:
cs-method: 'GET'
cs-uri-query|contains:
- 'searchstr='
- 'WmInQmIController'
keywords:
- "' OR '1'='1"
- "UNION SELECT"
- "SELECT * FROM"
- "WAITFOR DELAY"
- "SLEEP("
- "BENCHMARK("
condition: selection and keywords
falsepositives:
- Legitimate search queries containing SQL keywords (unlikely)
level: high
tags:
- attack.t1190
- cwe-74
YARA Rule
rule CVE_2026_108778_JEEWMS_SQLi
{
meta:
description = "Detects SQL injection attempts in JEEWMS WmInQmIController.list via searchstr parameter"
author = "Threat Intelligence"
date = "2026-10-10"
reference = "CVE-2026-108778"
hash = "unknown"
strings:
$s1 = "WmInQmIController" ascii wide nocase
$s2 = "searchstr=" ascii wide nocase
$sqli1 = "' OR '1'='1" ascii wide nocase
$sqli2 = "UNION SELECT" ascii wide nocase
$sqli3 = "SLEEP(" ascii wide nocase
$sqli4 = "BENCHMARK(" ascii wide nocase
$sqli5 = "WAITFOR DELAY" ascii wide nocase
condition:
any of ($s*) and any of ($sqli*)
}
Suricata IDS Rule
alert http any any -> any any (msg:"CVE-2026-108778 JEEWMS SQL Injection Attempt"; flow:to_server,established; content:"WmInQmIController"; http_uri; content:"searchstr="; http_uri; pcre:"/(\%27)|(\')|(\-\-)|(\%23)|(#)/i"; pcre:"/((\%3D)|(=))[^\n]*((\%27)|(\')|(\-\-)|(\%3B)|(;))/i"; pcre:"/\w*((\%27)|(\'))((\%6F)|o|(\%4F))((\%72)|r|(\%52))/i"; pcre:"/((\%27)|(\'))union/i"; classtype:web-application-attack; sid:1000001; rev:1;)
Elastic Detection
sequence by host.id, user.id
[ network where process.name : "java" and network.protocol : "http" and url.path : "*WmInQmIController*" and url.query : "*searchstr=*" ]
[ network where process.name : "java" and network.protocol : "http" and url.path : "*WmInQmIController*" and url.query : "*searchstr=*" and url.query : ("*UNION*" or "*SELECT*" or "*SLEEP*" or "*BENCHMARK*" or "*WAITFOR*") ]
Splunk SPL Query
index=web sourcetype=access_combined
| search uri_path="*WmInQmIController*" uri_query="*searchstr=*"
| regex uri_query="(?i)(union|select|sleep|benchmark|waitfor|' or '1'='1|--|#)"
| stats count by src_ip, uri_path, uri_query, status
| where count > 0
Wazuh OSSEC Rule
<group name="web,appserver,">
<rule id="100001" level="12">
<decoded_as>web-accesslog</decoded_as>
<url>WmInQmIController</url>
<regex>searchstr=.*(union|select|sleep|benchmark|waitfor|' or '1'='1|--|#)</regex>
<description>CVE-2026-108778: JEEWMS SQL Injection attempt detected in WmInQmIController.list</description>
<mitre>
<id>T1190</id>
</mitre>
<group>sql_injection,web,</group>
</rule>
</group>
Mitigation & Patch Guidance
Patch Confidence: 0/4 (UNPATCHED) — No patch evidence from any tracked source. The vendor (erzhongxmu) was contacted but did not respond.
1. Immediate Mitigations:
- Restrict access to the Inbound Quality Check Pda Interface to trusted IP ranges or VPN.
- Implement a Web Application Firewall (WAF) rule to block SQL injection patterns targeting the
searchstrparameter. - Disable or remove the vulnerable component if not essential.
- Monitor logs for exploitation attempts using the detection rules above.
2. Patch/Upgrade Steps:
- No official patch is available. Monitor the JEEWMS repository or vendor communications for updates.
- If a patch becomes available, apply it immediately after testing in a staging environment.
- Until then, consider applying input validation/sanitization code changes manually if you have development resources: ensure
searchstris properly escaped or parameterized before use in SQL queries.
3. Long-Term Hardening:
- Perform a security audit of all JEEWMS components for similar injection flaws.
- Implement secure coding practices: use prepared statements, stored procedures, and input validation.
- Deploy runtime application self-protection (RASP) or a WAF with virtual patching.
- Conduct regular penetration testing and vulnerability scanning.
- Replace JEEWMS if the vendor remains unresponsive and no patches are forthcoming.
References
- NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2026-108778
- JEEWMS Repository: https://github.com/erzhongxmu/JEEWMS (vendor contacted, no response)
- CWE-74: https://cwe.mitre.org/data/definitions/74.html
- MITRE ATT&CK T1190: https://attack.mitre.org/techniques/T1190/
- Public exploit disclosure (no specific URL provided in data).
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.