Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-82873

CVE-2026-82873: ToolJet Authorization Bypass Vulnerability

CVE-2026-82873 is an authorization bypass flaw in ToolJet through version 3.0.0-ee-beta.2 that enables authenticated users to access TooljetDB schemas and app definitions across workspace boundaries. This article covers technical details, affected versions, security impact, and mitigation strategies.

Published:

CVE-2026-82873 Overview

CVE-2026-82873 is an authorization bypass vulnerability in ToolJet through version 3.0.0-ee-beta.2. The flaw resides in the POST /api/v2/resources/export endpoint. Authenticated users can supply a body-provided organization_id parameter to read TooljetDB table schemas from workspaces they do not belong to. The same endpoint also allows bypassing per-app authorization gates to export restricted app definitions inside the caller's own workspace. The vulnerability maps to CWE-639: Authorization Bypass Through User-Controlled Key.

Critical Impact

Authenticated attackers can disclose database schemas across workspace boundaries and export application definitions they should not have access to, breaking tenancy isolation in multi-workspace deployments.

Affected Products

  • ToolJet versions through 3.0.0-ee-beta.2
  • ToolJet Enterprise Edition beta builds
  • Self-hosted and cloud ToolJet workspaces prior to the fixed release

Discovery Timeline

  • 2026-08-31 - CVE-2026-82873 published to NVD
  • 2026-08-31 - Last updated in NVD database

Technical Details for CVE-2026-82873

Vulnerability Analysis

ToolJet is a low-code platform that organizes users into workspaces, each with its own TooljetDB tables and application definitions. The POST /api/v2/resources/export endpoint services two logically distinct export operations: schema export for TooljetDB and definition export for applications. Both paths trust attacker-controlled request fields when determining scope.

The endpoint accepts an organization_id value from the request body and uses it to select which workspace's TooljetDB schemas to return. It does not verify that the requesting user is a member of that workspace. Any authenticated ToolJet user can enumerate workspace identifiers and retrieve schema metadata belonging to other tenants.

A second logic gap affects app definition export within the caller's own workspace. Granular per-app permissions that normally restrict who can view or export a given application are not consistently enforced on this endpoint. A low-privileged workspace member can therefore export app definitions that role-based access controls would otherwise block.

Root Cause

The root cause is broken object-level authorization. The endpoint derives the tenant scope from a body parameter rather than from the authenticated session context, and it fails to re-check per-app permissions before returning application definitions. This is a canonical [CWE-639] pattern where a user-controlled key is used to reference an object without verifying the caller has rights to that object.

Attack Vector

Exploitation requires network access to the ToolJet API and valid credentials for any workspace. An attacker sends a crafted POST request to /api/v2/resources/export with an organization_id value pointing to a target workspace. The server responds with TooljetDB schema data for that workspace. For the in-workspace variant, the attacker submits identifiers for apps they do not have export rights over and receives the application definitions.

The vulnerability is exploited entirely through legitimate API calls. No memory corruption, code execution, or unauthenticated access is involved. See the GitHub Security Advisory GHSA-pqfh-276q-w3cp and the VulnCheck ToolJet Advisory for additional technical detail.

Detection Methods for CVE-2026-82873

Indicators of Compromise

  • Requests to POST /api/v2/resources/export where the body-supplied organization_id does not match the authenticated user's active workspace.
  • Unusually high volumes of export requests from a single account, especially iterating over sequential or varied organization_id values.
  • Successful export responses returning schema metadata for workspaces the caller is not a member of according to ToolJet's user-workspace mapping.

Detection Strategies

  • Correlate application logs from ToolJet with the authenticated user's workspace membership table to flag cross-tenant export calls.
  • Parse reverse-proxy or API gateway logs for POST bodies targeting /api/v2/resources/export and extract the organization_id field for anomaly review.
  • Alert on any workspace member exporting an app whose granular permissions record does not grant them export or view rights.

Monitoring Recommendations

  • Forward ToolJet API access logs into a central analytics platform and retain user, workspace, endpoint, and request-body attributes for at least 90 days.
  • Build baselines of expected export activity per user and role so cross-workspace anomalies surface quickly.
  • Review audit trails after upgrading to identify historical abuse of the endpoint before the patch was applied.

How to Mitigate CVE-2026-82873

Immediate Actions Required

  • Upgrade ToolJet to a release later than 3.0.0-ee-beta.2 that addresses the advisory GHSA-pqfh-276q-w3cp.
  • Restrict network exposure of the ToolJet API to trusted networks or VPN clients while patching is planned.
  • Rotate any TooljetDB credentials or connection secrets referenced in schemas that may have been exposed across workspace boundaries.
  • Audit recent access logs for POST /api/v2/resources/export calls and identify any accounts that queried unrelated organization_id values.

Patch Information

Refer to the GitHub Security Advisory GHSA-pqfh-276q-w3cp for the fixed version and upgrade instructions. The fix enforces workspace membership on the export endpoint and re-checks per-app authorization before returning application definitions.

Workarounds

  • Place ToolJet behind an authenticating reverse proxy that inspects POST /api/v2/resources/export bodies and rejects requests where organization_id does not match the caller's session workspace.
  • Temporarily disable low-privilege roles from the export capability until the patched release is deployed.
  • Review and tighten workspace membership so that only accounts with a business need retain access to sensitive TooljetDB tables and app definitions.

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.