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

CVE-2026-82870: ToolJet Authentication Bypass Vulnerability

CVE-2026-82870 is an authentication bypass flaw in ToolJet that allows builder-role users to manipulate databases across organization boundaries. This post explains its impact, affected versions, and mitigation steps.

Published:

CVE-2026-82870 Overview

CVE-2026-82870 is a broken access control vulnerability in ToolJet versions before v3.16.208. The platform fails to validate organizationId ownership in database write and destroy routes. Any authenticated user with the builder role can create, alter, or drop tables in databases belonging to other organizations on shared instances. The flaw is tracked under CWE-639: Authorization Bypass Through User-Controlled Key.

Critical Impact

Authenticated builder-role users can permanently delete tables, insert arbitrary data, and modify schemas across tenant boundaries, breaking multi-tenant isolation on shared ToolJet instances.

Affected Products

  • ToolJet versions prior to v3.16.208
  • Multi-tenant ToolJet deployments hosting multiple organizations
  • Self-hosted ToolJet instances with builder-role users across tenants

Discovery Timeline

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

Technical Details for CVE-2026-82870

Vulnerability Analysis

ToolJet is a low-code platform that lets builders create internal tools backed by managed databases. In vulnerable versions, controller routes that perform database write and destroy operations do not resolve or verify the organizationId of the target resource against the caller's session. A builder in tenant A can issue requests referencing resources owned by tenant B and the backend will execute them.

The consequences span integrity and availability. Attackers can drop tables belonging to other organizations, insert forged rows into another tenant's data store, and modify schemas to break dependent applications. Because the checks are missing on write paths rather than read paths, confidentiality is not the primary concern; the risk is destructive tampering across tenant boundaries.

Root Cause

The root cause is missing organization-resolving guards on database mutation endpoints. The routes trust the organizationId or resource identifier supplied in the request rather than deriving it from the authenticated session and enforcing an ownership check before executing the operation. This is a canonical Insecure Direct Object Reference pattern captured by CWE-639.

Attack Vector

An attacker needs a valid builder-role account on a shared ToolJet instance reachable over an adjacent network. After authenticating, the attacker sends crafted requests to the database write or destroy routes, substituting identifiers that belong to a different organization. The server executes the schema change or data operation against the victim tenant's database without further authorization.

No verified exploit code is public. Technical details are described in the GitHub Security Advisory GHSA-xr3w-r926-xfmm and the VulnCheck Advisory on ToolJet.

Detection Methods for CVE-2026-82870

Indicators of Compromise

  • Unexpected DROP TABLE, ALTER TABLE, or CREATE TABLE statements in ToolJet-managed database logs outside normal builder activity windows.
  • API requests to ToolJet database write or destroy endpoints where the session's organization does not match the target resource's organizationId.
  • Sudden disappearance of tables or unexplained schema drift reported by application owners in a multi-tenant instance.

Detection Strategies

  • Enable verbose audit logging on ToolJet database controllers and correlate organizationId in the request payload with the authenticated user's organization claim.
  • Baseline builder-role activity per tenant and alert on cross-organization identifier references in write paths.
  • Review database server logs for DDL operations originating from the ToolJet service account outside of change windows.

Monitoring Recommendations

  • Forward ToolJet application and database logs to a centralized logging platform for cross-tenant correlation.
  • Monitor HTTP request bodies to ToolJet API endpoints for identifier tampering patterns.
  • Track builder account creation and role assignments across tenants to reduce the pool of accounts capable of triggering the flaw.

How to Mitigate CVE-2026-82870

Immediate Actions Required

  • Upgrade ToolJet to version v3.16.208 or later on every instance hosting more than one organization.
  • Audit existing builder-role accounts and revoke access for users who should not retain write permissions during patch rollout.
  • Snapshot managed databases before upgrading so destroyed schemas can be restored if abuse already occurred.

Patch Information

The vulnerability is fixed in ToolJet v3.16.208, which adds organization-resolving guards to the affected database write and destroy routes. Refer to the GitHub Security Advisory GHSA-xr3w-r926-xfmm for the authoritative fix reference.

Workarounds

  • Isolate tenants onto separate ToolJet instances until the upgrade is applied, eliminating the shared-instance precondition.
  • Restrict network access to ToolJet so only trusted operators on known segments can reach the API, reducing the adjacent-network exposure.
  • Temporarily downgrade untrusted builders to viewer roles on shared instances until patching is complete.
bash
# Verify installed ToolJet version and upgrade via Docker
docker exec -it tooljet cat package.json | grep '"version"'
docker pull tooljet/tooljet:v3.16.208
docker compose up -d

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.