GHSA-48qw-824m-86pr: ArcadeDB: Privilege escalation via reader role in /api/v1/command JS scripting language — arbitrary host file read
A user holding only reader (read-only) privileges on a single database could execute arbitrary JVM code by sending a "language": "js" command to the POST /api/v1/command/{database} HTTP endpoint, and use it to read arbitrary files on the host filesystem (e.g. /etc/passwd, configuration files), outside the scope of the database itself.
Two cooperating defects made this possible:
- Missing authorization on the scripting path (CWE-863 / CWE-269). Polyglot script execution (
jsand other GraalVM languages) never went through the database authorization checks applied to SQL/Cypher, so any authenticated principal - regardless of database role - could run scripts. - Sandbox whitelist bypass. The GraalVM sandbox restricts direct class lookups to a configured
allowedPackageslist, but a script could reach arbitrary classes by reflecting off the bounddatabaseobject:database.getClass().getClassLoader().loadClass("java.io.File").
Process creation was already blocked (allowCreateProcess(false)), so the confirmed impact is host file read, not OS command execution. Confidentiality: High. Integrity/Availability: None.
This is a distinct entry point and root cause from CVE-2026-44221, CVE-2026-54076 and CVE-2026-54077, and is reproducible on builds that already contain those fixes.
References
Code Behaviors & Features
Detect and mitigate GHSA-48qw-824m-86pr with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →