Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:L/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Network-reachable authenticated SQLi needing only asset create/rename rights (PR:L, AC:L); primarily data read (C:H) with limited write/DoS via SQL (I:L/A:L), same-DB-role scope so S:U.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
4Blast Radius
ecosystem impact- 5 maven packages depend on io.openremote:openremote-manager (5 direct, 0 indirect)
Ecosystem-wide dependent count for version 1.26.0.
DescriptionCVE.org
OpenRemote before 1.26.0 contain an authenticated SQL injection vulnerability in the datapoint crosstab export endpoint that constructs PostgreSQL queries by concatenating asset display names into raw SQL. An authenticated attacker with asset creation or rename permissions can inject SQL through the asset name parameter and receive query results in the exported CSV response, enabling database data exfiltration.
AnalysisAI
SQL injection in OpenRemote's datapoint crosstab export endpoint (all versions before 1.26.0) lets an authenticated user with asset creation or rename permissions exfiltrate database contents by embedding SQL into an asset display name that is concatenated into a raw PostgreSQL crosstab query. Injected SELECT results are streamed back inside the ZIP/CSV export response, giving a practical read primitive against any table the manager's database role can reach - including other tenants' data in multi-tenant deployments. Publicly available exploit code exists (VulnCheck/GHSA proof of concept); no active exploitation has been reported.
Technical ContextAI
OpenRemote is an open-source IoT/asset-management platform whose manager service exports time-series datapoints as CSV crosstab reports. The export builder derives a crosstab column header from the asset display name and attribute name, then embeds that attacker-controllable string into raw SQL in two places: a PostgreSQL double-quoted column identifier ("<asset name> : <attribute name>" text) and the category query passed to the crosstab(...) function inside a COPY (SELECT ... FROM crosstab(...)) TO STDOUT statement. Because the display name is concatenated rather than parameterized, this is a textbook CWE-89 (SQL Injection) via a second-order/stored input path - the malicious value is persisted as an asset name and only executed later when the crosstab export runs. The affected component is the datapoint export API for asset datapoints, specifically CSV crosstab-style formats, in cpe:2.3:a:openremote:openremote.
RemediationAI
Vendor-released patch: upgrade OpenRemote to 1.26.0 or later, which fixes the query construction (fix commit 02ac83074b81617add814b2a72d459abdf374147); see the advisory at https://github.com/openremote/openremote/security/advisories/GHSA-cgfv-jrfp-2r7v. If immediate patching is not possible, restrict who can create or rename assets and who can access crosstab datapoint export so that only fully trusted operators hold those permissions (trade-off: limits legitimate asset management and self-service reporting). As a defense-in-depth control, run the manager's PostgreSQL connection under a least-privilege database role scoped only to the tables the application needs, so an injected SELECT cannot read shared manager tables across realms (trade-off: requires careful grant auditing and may break features that expect broader access). In multi-tenant setups, consider separating tenant data at the database or schema level to blunt cross-realm exfiltration until the upgrade is applied.
More in PostgreSQL
View allPostgreSQL libpq functions PQescapeLiteral(), PQescapeIdentifier(), PQescapeString(), and PQescapeStringConn() improperl
An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl
Argument injection vulnerability in PostgreSQL 9.2.x before 9.2.4, 9.1.x before 9.1.9, and 9.0.x before 9.0.13 allows re
Unauthenticated arbitrary file write in Splunk Enterprise (below 10.2.4 and 10.0.7) and Splunk Cloud Platform (below 10.
Unauthenticated SQL injection in Sangoma Switchvox SMB Edition 8.3 (build 104997) lets remote attackers execute arbitrar
PostgreSQL versions before 9.2.22, 9.3.18, 9.4.13, 9.5.8 and 9.6.4 are vulnerable to incorrect authentication flaw allow
The build_tablename function in pgsql.c in the PostgreSQL (aka pgsql) extension in PHP through 5.6.7 does not validate t
A vulnerability in the h2oai/h2o-3 REST API versions 3.46.0.4 allows unauthenticated remote attackers to execute arbitra
In PostgreSQL 9.3 through 11.2, the "COPY TO/FROM PROGRAM" function allows superusers and users in the 'pg_execute_serve
Unauthenticated SQL injection in Vendure Shop API allows remote attackers to execute arbitrary SQL commands against the
Parse Server is an open source http web server backend. Rated critical severity (CVSS 10.0), this vulnerability is remot
Hard-coded default PostgreSQL credentials shipped in the docker-compose.yaml of langgenius Dify through version 1.5.1 al
Same weakness CWE-89 – SQL Injection
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-45084
GHSA-rw7h-h988-gfff