CVE-2026-93596: ArcadeDB before 26.9.1 Authorization Bypass via Batch Edge Connect

Published Sep 18, 2026
·
Updated

ArcadeDB before 26.9.1 (com.arcadedb:arcadedb-engine <= 26.8.1) fails to bind the authenticated principal onto the DatabaseAsyncTransaction async worker threads used by the parallel edge-connect phase of POST /api/v1/batch/{database}. Because those workers have no current user, LocalDatabase.checkPermissionsOnFile returns early and allows the write, bypassing per-type CREATERECORD/UPDATERECORD ACL enforcement. In deployments that rely on per-type or per-group ACLs, an authenticated low-privilege user holding CREATERECORD on an edge type E but with CREATERECORD/UPDATERECORD revoked on a vertex type V can submit a graph edge-load batch request (with parallelFlush at its default value of true) and durably append edges to protected vertices of type V by writing records into V's <V>outedges/<V>inedges buckets, resulting in unauthorized modification of graph adjacency. Setting parallelFlush=false causes the request to be correctly rejected. This is an incomplete fix of GHSA-c23x-pqcj-7hfm, which bound the principal only on the HTTP handler thread.

Affected Software

1 affected component
ArcadeDB ArcadeDB<26.9.1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade com.arcadedb:arcadedb-engine to a version that resolves this vulnerability.

    Fixed in 26.9.1
  2. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Patch GHSA-c23x-pqcj-7hfm
  3. Configuration

    Set parallelFlush=false for batch edge-load requests to force correct rejection and avoid the authorization bypass described for parallel edge-connect processing.

    ArcadeDB batch endpoint (POST /api/v1/batch/{database}) parallelFlush = false

Event History

Sep 18, 2026
CVE Published
via MITRE·01:20 PM
Data Sourced
via MITRE·01:20 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which deployments are exposed to this bypass?

Deployments using ArcadeDB versions before 26.9.1 are exposed if they rely on per-type or per-group ACLs and allow a low-privilege authenticated user to create records on an edge type while denying CREATE_RECORD or UPDATE_RECORD on a protected vertex type.

2

What access does an attacker need?

An attacker must be authenticated and have CREATE_RECORD permission on an edge type. They do not need permission to create or update records on the targeted vertex type.

3

Is the default batch configuration affected?

Yes. The affected parallel edge-connect phase runs when parallelFlush is true, which is the default value.

4

What can be done if upgrading is not immediately possible?

Set parallelFlush=false for graph edge-load batch requests. With parallelFlush disabled, the request is correctly rejected when the user lacks the required permissions on the vertex type.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203