Sparx Enterprise Architect / Pro Cloud Server Unauthenticated Binary-Protocol SQL Injection (CVE-2026-42096)
by br0x (sploit.tech) / Team Efigo · 2026-07-05
- Severity
- Critical
- CVE
- CVE-2026-42096
- Category
- network
- Affected product
- Sparx Systems Enterprise Architect / Pro Cloud Server (PCS)
- Affected versions
- See advisory (PoC tested against EA client build 1527 / internal build 481 protocol)
- Disclosed
- 2026-07-05
- Patch status
- unpatched
References
Archive entry
intelseclab/poc-archiveMetadata
| Field | Value |
|---|---|
| Date Added | 2026-07-05 |
| Last Updated | 2026-05 |
| Author / Researcher | br0x (sploit.tech) / Team Efigo |
| CVE / Advisory | CVE-2026-42096 |
| Category | network |
| Severity | Critical |
| CVSS Score | N/A |
| Status | PoC |
| Tags | sqli, unauthenticated, sparx, enterprise-architect, pro-cloud-server, binary-protocol, python |
| Related | N/A |
Affected Target
| Field | Value |
|---|---|
| Software / System | Sparx Systems Enterprise Architect / Pro Cloud Server (PCS) |
| Versions Affected | See advisory (PoC tested against EA client build 1527 / internal build 481 protocol) |
| Language / Platform | Python (PoC client), custom binary protocol over HTTP |
| Authentication Required | No |
| Network Access Required | Yes — HTTP(S) access to the PCS SparxCloudLink.sseap endpoint |
Summary
Sparx Pro Cloud Server exposes a SparxCloudLink.sseap endpoint that accepts a proprietary binary protocol used by the Enterprise Architect desktop client to query the underlying repository database. Commands (including raw SQL query strings) are obfuscated with a simple custom substitution cipher rather than being authenticated or parameterized. An unauthenticated attacker who reproduces the client’s framing and cipher can submit arbitrary SQL to the server and receive the result set back, with no login required.
Vulnerability Details
Root Cause
The EA/PCS client-server protocol does not perform meaningful authentication or input validation on the SQL payload it sends to the server. Instead of protecting the query, the protocol obfuscates it with a short, reversible substitution cipher (mangle/demangle character reordering combined with a modulo-94 key-based substitution, see custom_encode/custom_decode in eacrypt.py). Because the cipher is a fixed, reproducible transform (not a real authentication/integrity mechanism), any client capable of building the correct binary frame can submit attacker-controlled SQL text that the server executes against the repository database.
Attack Vector
- Attacker crafts a raw SQL string (e.g.
Select * from t_secuser). - The string is length-prefixed and padded, then transformed via
mangle()andcustom_encode()using the (author-redacted) protocol key. - The encoded payload is wrapped in the EA binary protocol framing (command bytes, repository/model name, length fields) mimicking a legitimate EA client request.
- The frame is POSTed to
<host>/SparxCloudLink.sseapwith EA client headers (EnterpriseArchitect-Build,User-Agent: Enterprise Architect/...) and no credentials. - The PCS server decodes the cipher, executes the SQL against the backend repository DB, and returns the result as a zipped
query.xml.
Impact
An unauthenticated network attacker can read or potentially modify arbitrary data in the EA repository database (project data, user credentials such as t_secuser, configuration), leading to full data disclosure/tampering of the modeling repository and potential downstream compromise of any system trusting EA repository data.
Environment / Lab Setup
Target: Sparx Pro Cloud Server exposing SparxCloudLink.sseap over HTTP(S)
Client: Python 3 with requests, pycurl
Note: The cipher key constant `k` in eacrypt.py is intentionally redacted by
the original author to avoid trivial script-kiddie abuse; the protocol
logic itself is complete and functional.
Proof of Concept
PoC Script
See
eacrypt.pyin this folder.
| |
Running the script builds and sends the obfuscated binary-protocol request to SparxCloudLink.sseap and prints the returned query.xml (or raw response body if not a zip), demonstrating unauthenticated arbitrary SQL execution against the PCS repository.
Detection & Indicators of Compromise
- Unauthenticated POST requests to /SparxCloudLink.sseap from clients that
never performed any prior EA license/session handshake.
- Requests carrying spoofed EnterpriseArchitect-Build / User-Agent headers
but originating from non-EA-client tooling (scripted HTTP clients).
- Unusual or high-volume queries against repository tables such as
t_secuser from the PCS service account.
Signs of compromise:
- Unexpected reads of
t_secuseror other sensitive repository tables. - Anomalous PCS server logs showing binary-protocol requests without corresponding legitimate EA client sessions.
- Data exfiltration patterns (large
query.xmlresponses) to unfamiliar source IPs.
Remediation
| Action | Detail |
|---|---|
| Primary fix | Apply vendor patch / upgrade Sparx Pro Cloud Server to a fixed release per the vendor advisory |
| Interim mitigation | Restrict network access to the PCS SparxCloudLink.sseap endpoint to trusted EA client networks only (firewall/VPN segmentation); monitor for anomalous unauthenticated traffic to this endpoint |
References
Notes
Mirrored from https://github.com/br0xpl/sparx_hack on 2026-07-05.
| |