CVE-2019-25776
Threat Intelligence Report — CVE-2019-25776
Executive Summary
CVE-2019-25776 is a pre-authentication SQL injection vulnerability in the Weaver E-cology enterprise collaboration/office-automation platform, reachable through the userIdentifiers GET parameter exposed by a mobile plugin endpoint. A remote, unauthenticated attacker can submit crafted input to perform UNION-based SQL injection and exfiltrate sensitive database contents, explicitly including administrator credential hashes. With a CVSS v3.1 base score of 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N), the flaw is trivially network-reachable, requires no privileges or user interaction, and yields high confidentiality impact. No patch, public PoC, or Nuclei template is currently associated with this CVE, and it is not listed in CISA KEV — but exploitation activity was first observed in the wild by the Shadowserver Foundation on 2022-07-28, indicating active scanning/exploitation attempts against internet-exposed instances.
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 a mobile-facing plugin endpoint of Weaver E-cology. According to the NVD description, the application accepts a GET parameter named userIdentifiers and passes its value into a SQL query without adequate parameterization, producing a classic CWE-89 SQL injection condition. The endpoint is reachable unauthenticated, so no session token or login is required before the vulnerable query is constructed and executed.
A notable characteristic described in the source data is the WAF/filter evasion technique: because the application (or an intermediary filter layer) applies space-based keyword filtering (e.g., blocking the literal space character to disrupt injected SQL keywords), attackers bypass this by wrapping SQL keywords in parentheses. In SQL, a parenthesized expression requires no surrounding whitespace to be syntactically valid (e.g., UNION(SELECT(...))), so an attacker can substitute UNION SELECT ... with a parenthesized form that omits or restructures whitespace and evades naive filters. This is a well-known filter-bypass pattern against regex-based space/signature blocking.
The description explicitly states that the injection is used to perform UNION-based injection, which allows the attacker to append a second SELECT statement to the original query and return attacker-controlled columns in the application's response. Because the attacker is performing UNION-based exfiltration, the result of the injected query is reflected back through the endpoint response — no blind/out-of-band channel is required, although those are always possible.
The stated objective is extraction of sensitive data, specifically administrator credential hashes. E-cology stores user/administrator credentials in its database; obtaining password hashes enables offline cracking, which can lead to full administrative compromise of the platform.
Technical details that are not available from the provided data include: the exact plugin name or full URL path of the mobile endpoint, the backend database engine (MySQL, SQL Server, Oracle, etc.), the number/type of columns in the vulnerable query, the hashing algorithm used for stored credentials, and the exact historical version range affected. Accordingly, this report does not speculate on these points. No public PoC, Nuclei template, or exploit code is associated with this CVE in the tracked sources.
Exploitation Scenarios
Step 1 — Reconnaissance / target identification. An attacker enumerates internet-facing Weaver E-cology deployments using web-fingerprinting techniques (HTTP response banners, page titles, static asset paths) or Shodan-style queries. The well-known E-cology login and mobile plugin surface makes exposed instances easy to identify.
Step 2 — Triggering the flaw class. Once a target is identified, the attacker issues an unauthenticated HTTP GET request to the mobile plugin endpoint, supplying the userIdentifiers parameter with SQL metacharacters. Because pre-authentication is not enforced at this endpoint, the request reaches the vulnerable query builder directly.
Step 3 — Payload / execution method (vulnerability-class level). The attacker crafts a UNION-based SQL injection payload inside userIdentifiers. To defeat the space-based filter, SQL keywords are wrapped in parentheses so that the injected syntax remains valid without literal spaces. This allows the attacker to append a second SELECT to the original query and have the results returned in the endpoint's response.
Step 4 — Post-exploitation impact. The attacker reads database contents — the NVD description explicitly names administrator credential hashes — and returns them via the reflected UNION output. Those hashes can then be cracked offline to recover administrative passwords, enabling full control over the E-cology platform and any data or downstream systems it trusts.
Caveats and limitations. No public PoC or exploit code exists in the tracked sources, and no specific function, class, file path, or full URL is named in the provided description. Therefore, the chain above is inferred at the vulnerability-class level only and deliberately avoids fabricating implementation-specific details. The single concrete technical anchor is the userIdentifiers GET parameter on the mobile plugin endpoint and the parenthesized-keyword filter-bypass method, both of which are taken verbatim from the NVD description. Exploitation activity was first observed by the Shadowserver Foundation on 2022-07-28, which indicates that scanning or exploitation attempts against exposed instances were already occurring on that date.
Impact Assessment
- Confidentiality: High (C:H). The vulnerability permits arbitrary reading of database contents, including administrator credential hashes; this is the primary and explicitly stated impact.
- Integrity: None (I:N) and Availability: None (A:N) per the assigned vector. The CVSS scoring does not credit write or denial-of-service impact, though recovered administrator credentials can indirectly enable later integrity-impacting actions after cracking and re-authentication.
- Attack Vector: Network (AV:N), Attack Complexity: Low (AC:L), Privileges Required: None (PR:N), User Interaction: None (UI:N). This combination means the flaw is remotely exploitable by an unauthenticated attacker with no interaction from a victim user — the worst-case profile for an internet-exposed web application.
- Business impact. Weaver E-cology is an enterprise collaboration/office-automation platform commonly deployed internally and sometimes exposed to the internet for mobile access. Compromise of administrator credentials on such a platform can lead to broad lateral movement, access to stored documents and workflows, and abuse of integrated services. Extracted password hashes are a persistent risk because they remain valuable to the attacker even after the SQL injection is remediated.
- Blast radius. Limited to the confidentiality of the backing database and, by extension, any credentials contained within it. Because the description specifically calls out administrator credential hashes, the effective blast radius is the entire E-cology tenant and any trusted integrations.
- Exploitability in the wild. CVSS 7.5 is serious in itself; the Shadowserver 2022-07-28 observation confirms real-world exploitation attempts against exposed instances, so unpatched, internet-facing deployments must be treated as actively at risk. EPSS has not been scored by FIRST.org, so no probabilistic exploitation estimate is available; none is fabricated here.
Detection Guidance
No vendor patch or signature exists for this CVE, so detection must rely on behavioral and application-layer signals: anomalous userIdentifiers parameter content, SQL keyword clustering, and parenthesis-obfuscated payloads.
Sigma Rule
title: Weaver E-cology Unauthenticated SQL Injection via userIdentifiers (CVE-2019-25776)
id: 9f3b1c2a-7d5e-4a1b-9c6f-2a1e4b8d7f01
status: experimental
description: Detects SQL injection attempts against the Weaver E-cology mobile plugin endpoint via the userIdentifiers GET parameter, including parenthesized keyword filter bypass.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2019-25776
author: valtersit.com
date: 2025-01-01
logsource:
category: webserver
detection:
selection_param:
cs-uri-query|contains: 'userIdentifiers'
selection_sqli:
cs-uri-query|contains:
- 'union'
- 'select'
- 'UNION'
- 'SELECT'
- '%27'
- '--'
- '1=1'
selection_obfuscation:
cs-uri-query|contains:
- 'union(select'
- 'UNION(SELECT'
- 'union%28select'
condition: selection_param and (selection_sqli or selection_obfuscation)
falsepositives:
- Legitimate application requests containing the substring union/select in the value (unlikely for userIdentifiers)
level: high
tags:
- attack.t1190
- cve.2019.25776
YARA Rule
rule CVE_2019_25776_Weaver_Ecology_SQLi
{
meta:
description = "Detects Weaver E-cology SQL injection attempts via userIdentifiers parameter"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2019-25776"
author = "valtersit.com"
date = "2025-01-01"
strings:
$p1 = "userIdentifiers" ascii nocase
$s1 = "union" ascii nocase
$s2 = "select" ascii nocase
$obs1 = "union(select" ascii nocase
$obs2 = "%28select" ascii nocase
$obs3 = "%28union" ascii nocase
condition:
$p1 and (any of ($s1,$s2) or any of ($obs1,$obs2,$obs3))
}
Suricata IDS Rule
alert http any any -> any any (msg:"CVE-2019-25776 Weaver E-cology SQL Injection userIdentifiers"; flow:established,to_server; http.method; content:"GET"; http.uri; content:"userIdentifiers"; nocase; http.uri; content:"union"; nocase; http.uri; content:"select"; nocase; http.uri; pcre:"/(%28|\()(select|union)/i"; classtype:web-application-attack; reference:cve,2019-25776; sid:201925776; rev:1;)
Elastic Detection
sequence by source.ip with maxspan=1m
[ network where url.path != null and url.query != null
and url.query : "*userIdentifiers*"
and url.query : ("*union*" or "*select*" or "*%28select*" or "*%28union*") ]
Splunk SPL Query
index=web sourcetype=access_combined
| where like(uri_query, "%userIdentifiers%")
| where (like(lower(uri_query), "%union%") OR like(lower(uri_query), "%select%")
OR like(lower(uri_query), "%28select%") OR like(lower(uri_query), "%28union%")
OR like(uri_query, "%27%") OR like(uri_query, "%--%"))
| stats count min(_time) as first_seen max(_time) as last_seen
values(uri) as uris by src_ip, host
| sort - count
| convert ctime(first_seen) ctime(last_seen)
Wazuh OSSEC Rule
<group name="web,attack,cve-2019-25776,">
<rule id="201925776" level="12">
<decoded_as>web-accesslog</decoded_as>
<url_contains>userIdentifiers</url_contains>
<regex type="pcre2">(?i)(union|select|%28select|%28union)</regex>
<description>CVE-2019-25776: Weaver E-cology SQL injection attempt via userIdentifiers parameter</description>
<mitre>
<id>T1190</id>
</mitre>
<group>web,sqli,cve-2019-25776,</group>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence: 0/4 — UNPATCHED. No vendor fix, advisory, OSV package entry, or patched version is available from any tracked source. There is no Workaround or Vendor Fix field populated for this CVE.
Immediate mitigations (compensating controls).
- Block or restrict network access to the E-cology mobile plugin endpoint at the reverse proxy / WAF, especially if mobile access is not operationally required. If mobile access is needed, restrict source IP ranges where possible.
- Deploy a WAF or reverse-proxy rule that inspects the
userIdentifiersparameter and rejects requests containing SQL keywords (union,select) and parenthesized keyword obfuscation patterns, since the upstream filter's space-based controls are trivially bypassed per the NVD description. - Enforce authentication at the mobile plugin endpoint if the platform supports it, to eliminate the pre-authentication attack surface.
- Deploy the Sigma/Suricata/Wazuh detections above and alert on any hit; treat hits as active exploitation attempts.
Patch / upgrade steps.
- No patch is available. Contact Weaver directly to request a fixed version or security advisory and monitor the NVD page for updates. Do not assume a later version is fixed until a vendor advisory confirms it.
Long-term hardening.
- Apply server-side parameterized queries / prepared statements on all database access paths; never concatenate user-supplied values (such as
userIdentifiers) into SQL. - Replace naive space-based SQL keyword filters with proper input validation and parameterization; filters of this style are not an adequate defense, as this CVE demonstrates.
- Rotate all administrator credentials and invalidate any hashes that could have been exposed by prior exploitation; extracted hashes remain valid identifiers even after remediation.
- Segment and minimize internet exposure of E-cology deployments; put collaboration platforms behind VPN/ZTNA rather than directly on the public internet.
- Establish continuous vulnerability monitoring for E-cology and maintain an incident-response playbook for credential-hash theft.
- Apply server-side parameterized queries / prepared statements on all database access paths; never concatenate user-supplied values (such as
References
- NVD — CVE-2019-25776: https://nvd.nist.gov/vuln/detail/CVE-2019-25776
- CWE-89 — Improper Neutralization of Special Elements used in an SQL Command: https://cwe.mitre.org/data/definitions/89.html
- MITRE ATT&CK — T1190 Exploit Public-Facing Application: https://attack.mitre.org/techniques/T1190/
- Shadowserver Foundation — exploitation observation dated 2022-07-28 (as cited in the NVD description): https://www.shadowserver.org/
- Weaver E-cology vendor site (for advisory/patch status enquiries): https://www.weaver.com.cn/
Exploit-in-the-wild evidence. The NVD description states exploitation evidence was first observed by the Shadowserver Foundation on 2022-07-28. No specific threat-actor attribution, malware family, or CISA KEV listing is associated with this CVE in the provided data; nothing further is asserted here. No public PoC, Nuclei template, or exploit code is currently available for this CVE per the tracked sources.