Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privilege user
-
DeliveryCraft malicious keyword parameter
-
ExploitSubmit to queryWarehousingDetails/queryOutgoingDetails
-
ExecutionInject SQL via raw ${} substitution
-
ImpactExfiltrate cross-tenant database data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Persistence The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a valid authenticated account with at least low privileges (CVSS PR:L) and network access to the Skyeye application's ERP statistics functionality. The specific attack surface is the 'keyword' request parameter processed by the queryWarehousingDetails or queryOutgoingDetails endpoints, which flows into the queryErpOrderItem MyBatis statement using unsafe raw ${} string substitution instead of parameterized #{} binding. No user interaction is needed and no special non-default configuration is called out in the description - the ERP module simply needs to be deployed and reachable. The principal limiting factor is the authentication requirement; the principal aggravating factor is that cross-tenant data is exposed, so a single low-privilege tenant account can reach other tenants' data. |
| Impact | This is a genuine but moderate-priority issue rather than an exaggerated high-CVSS finding. The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H) is internally consistent with the description: a network-reachable SQL injection reachable by any authenticated low-privileged user, with high confidentiality impact (data extraction, including cross-tenant data) and no integrity or availability impact. The PR:L requirement is the primary risk limiter - an attacker must already hold valid low-privilege credentials, so this is not an unauthenticated pre-auth RCE-class flaw. No EPSS score, CISA KEV listing, or SSVC decision data was provided in the input, so exploitation probability and automatability cannot be quantified here. No public exploit identified at time of analysis, though a detailed technical write-up (hackmd) and a VulnCheck advisory with exact vulnerable source locations exist, which materially lowers the bar for an attacker to reproduce the injection. Net: real and worth patching, especially for multi-tenant deployments where cross-tenant data leakage is possible, but the mandatory authentication and the niche deployment footprint keep broad, automated mass-exploitation unlikely. |
| Exploit ScenarioDerived | An attacker with any valid low-privilege Skyeye account sends a crafted 'keyword' value to the queryWarehousingDetails or queryOutgoingDetails endpoint, where the input is concatenated into the queryErpOrderItem MyBatis statement via raw ${} substitution. Using boolean, UNION, error, or time-based techniques, they exfiltrate arbitrary database contents - including records belonging to other tenants. No public exploit is identified, but a public technical write-up and a VulnCheck advisory pinpoint the exact vulnerable mapper and controller lines. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 14, 2026
Authenticated SQL injection in Dromara Skyeye (all builds through commit 65d3ddcede70) lets any low-privileged user read arbitrary data from the backend database, including records belonging to other tenants, by sending crafted 'keyword' values to the queryWarehousingDetails and queryOutgoingDetails ERP statistics endpoints. The flaw is reachable over the network with only a valid low-privilege account (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N; vendor score 7.1 under CVSS 4.0), needs no user interaction, and impacts confidentiality only - there is no evidence of data modification or code execution. No public exploit code has been identified at time of analysis and the CVE is not listed in CISA KEV; a detailed public technical writeup exists, and the issue is a genuine but moderate-priority finding whose main limiting factor is the authentication requirement.
RemediationAI
No vendor-released patch is identified at time of analysis, so remediation must start with a source-level fix: replace the raw ${keyword} substitution in the queryErpOrderItem statement of skyeye-erp/erp-pro/src/main/resources/mapper/erp/StatisticsMapper.xml (lines 29-31) with parameterized #{} binding, or, where dynamic SQL ordering or LIKE patterns genuinely require concatenation, wrap the input in a MyBatis <bind> expression that applies strict allowlisting/escaping (for example CONCAT('%', #{keyword}, '%') for LIKE semantics) and rebuild/redeploy; the same audit should be applied to every other mapper reaching the StatisticsController.java (lines 33-45) handlers. Until that fix is deployed, compensating controls are limited and come with trade-offs: restrict network access to the ERP statistics endpoints (queryWarehousingDetails, queryOutgoingDetails) via reverse-proxy or firewall rules to trusted internal networks, accepting loss of external usability; enforce strict least-privilege on the database account used by Skyeye so it cannot read tables outside the ERP schema, which reduces but does not eliminate cross-tenant leakage since the application query itself spans tenants; and deploy WAF rules that block SQL metacharacters (UNION, comment sequences, boolean/time-based payload patterns) in the keyword parameter, understanding that WAFs are bypassable and generate false positives on legitimate searches. Because the flaw leaks other tenants' data to any low-privilege account, operators should also assume historical exposure, rotate database credentials, and review database and application logs for anomalous keyword values or long-running queries; track the project repository at https://github.com/dromara/skyeye for an official fix and consult the VulnCheck advisory at https://www.vulncheck.com/advisories/dromara-skyeye-through-commit-65d3ddcede70-sql-injection-via-keyword-parameter for updates.
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Skyeye is an open-source Spring Boot/Java ERP platform maintained by Dromara, and its ERP module (skyeye-erp/erp-pro) uses MyBatis mappers for persistence. The vulnerable statement, queryErpOrderItem, is defined in StatisticsMapper.xml (lines 29-31) and builds the 'keyword' filter with raw MyBatis ${} string substitution instead of the parameterized #{} placeholder, so attacker-supplied text is concatenated directly into the SQL statement rather than bound as a value. StatisticsController.java (lines 33-45) exposes that keyword parameter through the queryWarehousingDetails and queryOutgoingDetails endpoints, meaning any caller who can reach the statistics functionality can influence the query text. This is the classic CWE-89 improper neutralization of special elements used in an SQL command, and because the injected text lands inside a WHERE-style predicate it supports boolean-based, UNION-based, error-based and time-based extraction techniques. The CPE cpe:2.3:a:dromara:skyeye:*:*:*:*:*:*:*:* with a wildcard version confirms the vendor treats all versions at or before the cited commit as affected rather than a single tagged release; the failure to parameterize, rather than a flaw in MyBatis itself, is the root cause, and multi-tenant data isolation is defeated because the query runs with the application's own database permissions regardless of which tenant initiated the request.
Know when Skyeye gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Network-reachable injection needs a valid low-privilege account (PR:L) and no user interaction; impact is data extraction only, so C:H with I:N and A:N.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Dromara Skyeye through commit 65d3ddcede70 contains an sql injection vulnerability that allows authenticated low-privileged users to inject SQL via the keyword parameter in the queryErpOrderItem MyBatis statement using raw ${} substitution. Attackers can send crafted keyword values to the queryWarehousingDetails or queryOutgoingDetails endpoints to extract database data, including other tenants' data, using boolean, UNION, error or time-based techniques.
Executive ViewAI
Dromara Skyeye, used for ERP warehousing and outgoing-statistics reporting, can expose tenant and operational data to any valid low-privilege account through a security flaw in all builds through commit 65d3ddcede70. No public exploit identified at time of analysis, and no vendor-released patch identified at time of analysis, but the confidentiality impact across tenants makes this a high-priority access-control and data-protection risk. Affected stakeholders include ERP operations, shared-services teams, and tenant-facing business units that rely on Skyeye reporting.
No vendor-released patch identified at time of analysis. Interim mitigations: restrict access to Dromara Skyeye and the queryWarehousingDetails/queryOutgoingDetails endpoints; enforce least privilege for low-privilege accounts; deploy WAF or API gateway rules to block SQL injection in the keyword parameter; monitor database queries for cross-tenant data access; and isolate Skyeye from sensitive or multi-tenant data stores where feasible.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.
Unauthenticated OS command injection in Dromara Skyeye allows remote attackers to execute arbitrary commands as the Skye
Unauthenticated attackers can execute arbitrary commands on Dromara Skyeye's bundled xxl-job executor hosts by abusing J
Unauthenticated server-side request forgery and missing authorization in Dromara Skyeye let remote attackers drive the s
EUVD-2026-101237
GHSA-wg4g-q6wc-f4xf
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB