CVE-2026-55411: ToolJet Cross-Tenant Credential Exposure in Data-Source Decryption
ToolJet, an open-source platform for building internal tools and AI agents, contains a credential exposure vulnerability affecting versions prior to 3.20.1780-lts. An authenticated user can request decryption of data-source secrets belonging to any other organization by knowing or guessing a credential ID. The vulnerability exists because the decryption endpoint lacks proper access controls and organization-level scoping, allowing cross-tenant secret theft. Only users with a ToolJet account can exploit this, but the attacker's organization affiliation is irrelevant—any authenticated user gains access to any other tenant's secrets.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 6.8 MEDIUM · CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
- Weaknesses (CWE)
- CWE-639, CWE-863
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-06-25 / 2026-06-25
NVD description (verbatim)
ToolJet is the open-source foundation am AI-native platform for building and deploying internal tools, workflows and AI agents. Prior to 3.20.1780-lts, the authenticated endpoint POST /api/data-sources/decrypt returns the decrypted plaintext for any credential whose credential_id is supplied in the request body. Unlike every neighbouring data-source route, this handler is not protected by ValidateDataSourceGuard, does not receive the calling @User(), and the underlying CredentialsService.getValue() looks the credential up by id only, with no organization scoping. As a result, any authenticated user of any organization can decrypt the data-source secrets of any other organization by supplying that organization's credential_id — a cross-tenant confidentiality breach. This vulnerability is fixed in 3.20.1780-lts.
2 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The POST /api/data-sources/decrypt endpoint in ToolJet prior to version 3.20.1780-lts fails to implement organization-level authorization checks when decrypting data-source credentials. While sibling endpoints are protected by ValidateDataSourceGuard and scoped to the calling user's organization, the decrypt handler directly queries CredentialsService.getValue() using only the credential_id parameter, without validating that the requesting user belongs to the same organization as the credential owner. The endpoint also does not receive the @User() context that would enable per-organization filtering. This design flaw creates a direct path for credential enumeration and decryption across tenant boundaries.
Business impact
Compromise of data-source credentials exposes the underlying systems those credentials authenticate to—typically databases, APIs, third-party SaaS platforms, and internal services. An attacker with knowledge of another organization's credential IDs can extract plaintext secrets (API keys, database passwords, OAuth tokens, etc.) and use them to access or manipulate data within that organization's connected systems. The blast radius depends on the sensitivity of systems connected via ToolJet in the affected deployment, but the vulnerability is organization-agnostic: a malicious insider at one customer can target any other customer. In multi-tenant SaaS deployments, this constitutes a critical confidentiality breach.
Affected systems
ToolJet versions prior to 3.20.1780-lts are affected. The vulnerability requires ToolJet to be deployed in a multi-tenant configuration (where multiple organizations share a single instance) or for an attacker to have authenticated access to any ToolJet instance. Single-tenant on-premises deployments with restricted access are at lower risk, though the flaw still represents a privilege escalation vector for insider threats. Any organization running ToolJet 3.20.1780-lts or later has the vulnerability patched.
Exploitability
Exploitation requires valid authentication credentials to a ToolJet instance. No network adjacency, special configuration, or user interaction is required; the attacker simply crafts a POST request to the decrypt endpoint with a target credential_id. The primary barrier is discovering valid credential IDs from other organizations—this may occur through leaked documentation, error messages, brute-force enumeration, or insider knowledge. Once a credential_id is known, decryption is trivial and yields plaintext secrets. The CVSS vector (CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N) reflects low attack complexity and high confidentiality impact, though the 'A' (Adjacent Network) vector assumes the attacker must be on the same network segment as the ToolJet instance—relevant for on-premises deployments but less restrictive for cloud-hosted or internet-facing instances.
Remediation
Upgrade ToolJet to version 3.20.1780-lts or later immediately. The patch restores organization-scoped access controls and integrates the decrypt endpoint with ValidateDataSourceGuard, ensuring credentials are only accessible to users within the owning organization. For organizations unable to upgrade immediately, implement network-level controls to restrict access to the ToolJet instance and audit logs for POST requests to /api/data-sources/decrypt with anomalous credential_id values. Review connected data sources and rotate secrets if unauthorized access is suspected.
Patch guidance
Deploy version 3.20.1780-lts via your standard ToolJet update process (verify against the official ToolJet release notes and security advisory). The patch is available in the LTS release track and should be prioritized for all multi-tenant deployments. Test in a staging environment first to confirm compatibility with existing data-source integrations. No configuration changes are required post-upgrade. Ensure all instances (including dev/test environments) are patched, as attackers may target non-production instances to gain access to credentials used across environments.
Detection guidance
Monitor audit logs and access logs for POST requests to /api/data-sources/decrypt. Baseline typical credential_id patterns within your organization and flag requests using credential_ids from different organizations or departments. Implement rate limiting on the decrypt endpoint to reduce brute-force feasibility. Enable authentication logging to identify compromised user accounts making suspicious decryption requests. If your ToolJet instance logs request payloads, search for repeated calls to decrypt with varying credential_id parameters as a sign of enumeration activity. Review who has access to your ToolJet instance and whether multi-tenancy is actually enabled; if not, the risk surface is reduced to insider threats.
Why prioritize this
Although the CVSS score is 6.8 (MEDIUM), the practical risk is elevated for multi-tenant deployments due to the cross-organization confidentiality breach and the sensitivity of typical data-source credentials (database passwords, API keys). The ease of exploitation (no complex attack chain) and the high-value target (secrets that unlock access to other systems) justify urgent patching. Organizations running ToolJet in multi-tenant mode should treat this as HIGH priority. Single-tenant deployments may deprioritize slightly but should still patch within standard change windows.
Risk score, explained
The CVSS 6.8 MEDIUM score reflects high confidentiality impact (C:H) but no integrity or availability impact and a requirement for prior authentication (PR:L). The adjacent network vector (AV:A) assumes on-premises deployment; cloud/internet-facing instances should mentally elevate the score. The score undersells the practical risk in multi-tenant SaaS environments where cross-organization access to production credentials can lead to rapid lateral movement and data exfiltration. Organizations should apply judgment based on their deployment model and the criticality of systems connected to ToolJet.
Frequently asked questions
Can this vulnerability be exploited without knowing the exact credential_id?
Partially. An attacker with authenticated access could attempt to brute-force or enumerate credential IDs by sending POST requests with sequential or guessed IDs. If the endpoint returns success/failure differentiation or timing signatures, enumeration becomes feasible. However, in well-configured deployments, credential_ids are not easily discoverable without prior reconnaissance or insider knowledge. The patch mitigates this by restricting access to credentials only within the attacker's own organization.
Does this affect single-tenant on-premises ToolJet deployments?
Single-tenant deployments are not vulnerable to cross-organization attack since there is only one organization. However, the underlying authorization flaw still exists, making it possible for a low-privileged user to decrypt credentials they should not access—a lateral privilege escalation. On-premises deployments should still patch to eliminate this insider risk.
What if we don't know which of our data-source credentials are exposed?
There is no audit trail indicating which credentials were decrypted without patching. Assume all credential_ids that could be discovered or enumerated may have been compromised. The safest approach is to rotate secrets for all data sources connected to the ToolJet instance, prioritizing production systems. After patching to 3.20.1780-lts, implement audit logging on the decrypt endpoint to detect future unauthorized access attempts.
Is there a workaround if we cannot upgrade immediately?
No reliable workaround exists within ToolJet itself. Mitigations include: (1) restrict network access to the ToolJet instance to trusted networks only, (2) disable or remove credentials from the system if they are not actively in use, and (3) monitor for suspicious API calls to /api/data-sources/decrypt. These are temporary measures; patching should remain the priority.
This analysis is based on the published CVE record and vendor advisory as of the stated publication date. Exploit techniques, active in-the-wild abuse, and additional security research may emerge after publication. Verify all patch version numbers and remediation steps against official ToolJet release notes and security bulletins. This content is for informational purposes and should not substitute for consultation with your own security and engineering teams. The assessment of business impact, exploitability, and prioritization is contextual; apply it to your specific deployment and risk profile. Source: NVD (public-domain), retrieved 2026-08-03. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-42999MEDIUMOpenStack Keystone RBAC Bypass via JSON Request Body Injection
- CVE-2026-45563MEDIUMRoxy-WI Audit Trail Disclosure – Unauthorized Access to User History
- CVE-2026-47238MEDIUMClipBucket v5 Unauthorized Subtitle Editing Vulnerability
- CVE-2026-54324MEDIUMCross-Tenant Authorization Bypass in Daytona Notification Gateway
- CVE-2026-56424HIGHMISP Authorization Bypass Enabling Cross-Organization Data Tampering
- CVE-2023-40200MEDIUMWP Logo Showcase Authorization Bypass Vulnerability (CVSS 5.3)
- CVE-2025-15657MEDIUMUnauthenticated IDOR in School Management – Patch Guidance
- CVE-2026-10023MEDIUMDokan WooCommerce Plugin Order Tampering Vulnerability