GHSA-x8mg-6r4p-87pf: ArcadeDB has cross-database IDOR /ts/*, /batch/*, Prometheus And Grafana Vulnerability
HIGHGHSA-x8mg-6r4p-87pf is a HIGH /ts/*, /batch/*, prometheus and grafana vulnerability (CWE-285: Improper Authorization) affecting ArcadeDB has cross-database IDOR libraries in the Maven ecosystem. The issue involves /ts/*, /batch/*, prometheus and grafana handlers bypass authorization. Remediation is available by upgrading affected packages to version 26.7.2.
GHSA-x8mg-6r4p-87pf at a Glance
How to Fix GHSA-x8mg-6r4p-87pf
To remediate this vulnerability, upgrade all affected ArcadeDB has cross-database IDOR dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
<dependency>
<groupId>com.arcadedb</groupId>
<artifactId>arcadedb-server</artifactId>
<version>26.7.2</version>
</dependency>
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
mvn dependency:tree -Dincludes=com.arcadedb
How to Check if You Are Affected
To determine whether your Java application is affected by GHSA-x8mg-6r4p-87pf, inspect your build dependencies using the Maven Dependency Plugin:
mvn dependency:tree -Dincludes=com.arcadedb
Analyze the terminal output to locate any version of ArcadeDB has cross-database IDOR in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 26.7.2), your application is affected.
Note: The mvn dependency:tree -Dincludes=com.arcadedb command inspects the resolved dependency graph declared in your project's POM files; it does not perform automated security scanning or inspect runtime dynamic classpaths. Always verify runtime container classpaths and shaded JARs.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-285: Improper Authorization, where the product does not perform or incorrectly performs an authorization check when an actor attempts to access a resource or perform an action. In ArcadeDB has cross-database IDOR, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
GHSA-x8mg-6r4p-87pf Affected ArcadeDB has cross-database IDOR Versions
1 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
com.arcadedb:arcadedb-server
|
Maven |
< 26.7.2
|
26.7.2
|
References
Frequently Asked Questions
What is GHSA-x8mg-6r4p-87pf?
Which ArcadeDB has cross-database IDOR versions are affected?
What version fixes GHSA-x8mg-6r4p-87pf?
Is arcadedb-server affected?
What CWE is associated with GHSA-x8mg-6r4p-87pf?
How can I check Maven dependencies for GHSA-x8mg-6r4p-87pf?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-x8mg-6r4p-87pf",
"modified" : "2026-07-16T20:20:22Z",
"published" : "2026-07-16T20:20:22Z",
"aliases" : [ ],
"summary" : "ArcadeDB has cross-database IDOR: /ts/*, /batch/*, Prometheus and Grafana handlers bypass authorization",
"details" : "About 14 HTTP handlers resolve the {database} path param and call getDatabase(...) WITHOUT user.canAccessToDatabase(...) and without setting the engine principal, because they extend AbstractServerHttpHandler directly instead of DatabaseAbstractHandler (which holds the only per-database gate at DatabaseAbstractHandler.java:69,88-90). Affected: PostBatchHandler:129, PostTimeSeriesWriteHandler:115, PostPrometheusWriteHandler:83, PostTimeSeriesQueryHandler:69, GetTimeSeriesLatestHandler:58, PostGrafanaQueryHandler:69, GetGrafanaHealthHandler:49, GetGrafanaMetadataHandler:52, GetPromQLQueryHandler:63, GetPromQLQueryRangeHandler:71, GetPromQLLabelsHandler:56, GetPromQLLabelValuesHandler:62, GetPromQLSeriesHandler:72, PostPrometheusReadHandler:85. The engine fallback is also void: LocalDatabase.checkPermissionsOnDatabase:711 early-returns when getCurrentUser()==null.\n\nExploit: a user authorized only for DB 'a' calls POST /api/v1/batch/b, POST /api/v1/ts/b/write, GET /api/v1/ts/b/prom/api/v1/query, POST /api/v1/ts/b/query -> full read AND write of DB 'b' (200 OK). The equivalent /api/v1/command/b correctly returns 403.\n\nFix: re-parent these handlers to DatabaseAbstractHandler, or add a shared resolveAuthorizedDatabase() choke point that enforces canAccessToDatabase and sets the engine principal before getDatabase(...). Fail closed when the security context is absent.",
"severity" : [ {
"type" : "CVSS_V4",
"score" : "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"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "Maven",
"name" : "com.arcadedb:arcadedb-server"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"fixed" : "26.7.2"
} ]
} ]
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/ArcadeData/arcadedb/security/advisories/GHSA-x8mg-6r4p-87pf"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/ArcadeData/arcadedb"
}, {
"type" : "WEB",
"url" : "https://github.com/ArcadeData/arcadedb/releases/tag/26.7.2"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-200", "CWE-285" ],
"severity" : "HIGH",
"github_reviewed" : true,
"github_reviewed_at" : "2026-07-16T20:20:22Z",
"nvd_published_at" : null
}
}