Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain UPDATE_SCHEMA credentials
-
DeliveryIssue CREATE TRIGGER with JavaScript RCE payload
-
ExploitTrigger registered in schema
-
ExecutionDatabase operation fires trigger condition
-
Persistjava.lang.Runtime.exec() invoked server-side
-
ImpactOS commands execute as ArcadeDB process
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Code injection prevention, sandbox exec
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Initial Access 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 ArcadeDB account that has been explicitly granted the UPDATE_SCHEMA permission, which corresponds to schema-administration rights one privilege tier below full security administration (UPDATE_SECURITY). The attacker must be able to reach the ArcadeDB API endpoint over the network and issue a CREATE TRIGGER SQL statement specifying JavaScript as the trigger language. Once the trigger is created, it fires automatically whenever a matching database operation occurs - no further attacker interaction is needed. The primary limiting factor is the UPDATE_SCHEMA credential requirement: deployments where this permission is granted only to a small set of tightly controlled accounts face substantially reduced real-world risk. There is no default configuration that prevents the java.lang.* host-class lookup path short of either upgrading to 26.7.2 or disabling JavaScript trigger scripting entirely. |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H) captures a network-reachable, low-complexity exploit path that yields full confidentiality, integrity, and availability compromise of the vulnerable system, gated only by the PR:H requirement for UPDATE_SCHEMA credentials. EPSS is 0.52% at the 41st percentile and SSVC records exploitation status as none, meaning no confirmed active exploitation, consistent with the absence of a CISA KEV listing. However, SSVC simultaneously flags automatable:yes and technical impact:total - meaning that once an attacker controls a qualifying account, the path to OS RCE is mechanically straightforward with no timing or race constraints. The low EPSS reflects the credential barrier rather than any technical difficulty in exploitation; even a mid-sized municipal IT team in zabrze should treat this as urgent if UPDATE_SCHEMA is granted to service accounts or shared credentials. The provided CVSS 4.0 vector sets SC/SI/SA to N, which underrepresents the host-OS escape potential - OS command execution via Runtime.exec() extends impact beyond the ArcadeDB process boundary. No public exploit code has been identified at time of analysis, but the GHSA advisory publishes specific code locations and a working exploitation pattern. |
| Exploit ScenarioDerived | An attacker with UPDATE_SCHEMA credentials - obtained through credential reuse, a compromised service account, or insider access - connects to ArcadeDB's network API and issues a CREATE TRIGGER statement embedding a JavaScript payload that calls Java.type('java.lang.Runtime').getRuntime().exec() with attacker-supplied arguments such as a reverse shell command. When any database operation matching the trigger predicate subsequently fires (e.g., an INSERT or UPDATE on the targeted table), the OS command executes server-side with the privileges of the ArcadeDB process. No public exploit code has been identified at time of analysis, but the GHSA advisory provides sufficient implementation-level detail that reproduction by a capable actor is straightforward. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv2 – Aug 24, 2026
Remote OS command execution in ArcadeDB before 26.7.2 is reachable by authenticated schema administrators through JavaScript trigger scripts, because ScriptTriggerExecutor grants sandbox access to the full java.lang.* package, allowing direct invocation of java.lang.Runtime.getRuntime().exec() or ProcessBuilder. Any account holding UPDATE_SCHEMA permission can create a trigger that fires OS commands server-side against the underlying host process. No public exploit has been identified at time of analysis, but SSVC rates the technical impact as total and the attack as automatable, and the GHSA advisory provides sufficient implementation detail to lower the barrier for capable threat actors.
Earlier versions of this analysis (1)
OS command execution in ArcadeDB (arcadedb-engine) before 26.7.2 lets an authenticated user with UPDATE_SCHEMA permission escalate to full remote code execution on the host. Because ScriptTriggerExecutor whitelists java.lang.* for JavaScript trigger scripts, an attacker can create a trigger that calls Java.type("java.lang.Runtime").getRuntime().exec() (or ProcessBuilder) and runs arbitrary OS commands when the trigger fires. Reported by VulnCheck with a vendor patch available; no public exploit identified at time of analysis.
RemediationAI
Upgrade to ArcadeDB 26.7.2, which is confirmed as the fixed version by both the vendor GHSA advisory and EUVD data. The fix removes java.lang.* from the ScriptTriggerExecutor allowed-package list and narrows the GraalVM host-access configuration; the vendor recommends migrating from HostAccess.ALL to HostAccess.EXPLICIT with explicitly annotated @HostAccess.Export methods if host interop is operationally required. If immediate patching is not feasible, restrict UPDATE_SCHEMA permission to the absolute minimum set of accounts - preferably gating trigger creation at UPDATE_SECURITY (the next higher privilege tier) as a hardening measure. Existing triggers should be audited for calls to Java.type(), Runtime.exec(), or ProcessBuilder to identify any prior exploitation. Disabling JavaScript trigger creation entirely eliminates the attack surface at the cost of losing that scripting capability. The full vendor advisory including fix guidance is at https://github.com/ArcadeData/arcadedb/security/advisories/GHSA-x9f9-r4m8-9xc2.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in maven, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
ArcadeDB is a multi-model NoSQL database engine built on Java with GraalVM polyglot scripting support for triggers. The root cause (CWE-94, Improper Control of Code Generation) lies in ScriptTriggerExecutor.java line 56, where the GraalVM JavaScript context is initialized with an allowed-package list that includes java.lang.*, java.util.*, java.time.*, and java.math.* under HostAccess.ALL. This configuration permits trigger scripts to call Java.type('java.lang.Runtime') and chain .getRuntime().exec(), which are standard Java OS-execution primitives. Two sandbox controls that should have prevented this fail: the GraalVM reflection denylist does not intercept Java.type host-class lookups, and allowCreateProcess(false) only blocks the GraalVM guest-process API - it has no effect on Runtime.exec() accessed through the unrestricted HostAccess.ALL host-object bridge. Trigger creation is gated at LocalSchema.createTrigger (line 636) by the UPDATE_SCHEMA permission, one tier below full UPDATE_SECURITY. The affected Maven package is com.arcadedb:arcadedb-engine, all versions below 26.7.2 per CPE cpe:2.3:a:arcadedata:arcadedb:*:*:*:*:*:*:*:*.
Know when Arcadedb 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:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Network-reachable API, low complexity, high privilege required (UPDATE_SCHEMA); scope change to host OS via Runtime.exec() warrants S:C with full C/I/A impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
5DescriptionCVE.org
ArcadeDB before 26.7.2 (arcadedb-engine) allows trigger scripts to look up host classes in java.lang.* (via Java.type) because ScriptTriggerExecutor adds java.lang.* to the allowed packages. An authenticated user with UPDATE_SCHEMA permission can create a JavaScript trigger that invokes java.lang.Runtime.getRuntime().exec() (or ProcessBuilder), achieving OS command execution when the trigger fires.
Blast Radius
ecosystem impact- 18 maven packages depend on com.arcadedb:arcadedb-engine (9 direct, 9 indirect)
Ecosystem-wide dependent count for version 26.7.2.
Executive ViewAI
ArcadeDB versions before 26.7.2 enable authenticated users with UPDATE_SCHEMA permission to execute arbitrary operating system commands on database servers through JavaScript trigger scripts. This vulnerability is particularly critical for organizations where schema administration privileges are broadly distributed or shared, as any such account represents a gateway to complete infrastructure compromise. Immediate patching is essential to eliminate this execution pathway.
Apply vendor patch.
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
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
Unauthenticated data access and manipulation in ArcadeDB before 26.8.1 arises because the Redis wire-protocol plugin exp
Privilege escalation in ArcadeDB server (versions 26.7.3 and earlier) allows a low-privileged authenticated user with re
Privilege escalation in ArcadeDB before 26.8.1 lets a low-privileged authenticated reader escalate to full server admini
Authentication bypass in ArcadeDB before 26.8.1 lets unauthenticated attackers run full CRUD operations against any data
Scripting authorization bypass in ArcadeDB before 26.7.2 lets any authenticated database user - including read-only role
Cross-database authorization bypass (IDOR) in ArcadeDB before 26.7.2 lets attackers read and write any database on the s
Remote code execution in ArcadeDB's Gremlin query engine exposes any deployment running arcadedb-gremlin through version
Cross-database authorization bypass in ArcadeDB's Gremlin wire-protocol plugin allows any authenticated server user to f
Arbitrary file read in ArcadeDB before version 26.8.1 allows authenticated users holding trigger creation privileges to
Cluster token exposure in ArcadeDB before 26.7.2 enables any authenticated user to escalate privileges to root-level adm
Privilege escalation in ArcadeDB before 26.7.3 allows any user holding UPDATE_SCHEMA permission to create server-wide ad
Authenticated low-privilege users can read and insert TimeSeries samples in ArcadeDB deployments running versions before
EUVD-2026-51813
GHSA-w8vx-3rmm-v7rp
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB