Skip to main content

ToolJet EUVDEUVD-2026-39470

| CVE-2026-55411 MEDIUM
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-06-25 GitHub_M
6.8
CVSS 3.1 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
6.8 MEDIUM
AV:A/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
vuln.today AI
7.7 HIGH

AV:N chosen over AV:A because ToolJet's API is typically internet-exposed; PR:L confirmed by authentication requirement; S:C reflects cross-tenant boundary violation.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Adjacent
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

2
Patch available
Jun 25, 2026 - 18:03 EUVD
Analysis Generated
Jun 25, 2026 - 17:23 vuln.today

DescriptionCVE.org

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.

AnalysisAI

Cross-tenant credential decryption in ToolJet prior to 3.20.1780-lts allows any authenticated user to retrieve plaintext data-source secrets belonging to any other organization on the same instance. The POST /api/data-sources/decrypt endpoint omits the ValidateDataSourceGuard present on all neighboring routes and performs no organization-scoped lookup, meaning a valid session from any tenant is sufficient to exfiltrate database passwords, API keys, and other stored secrets across tenant boundaries. No public exploit has been identified at time of analysis, but the attack is mechanically trivial for any user with a valid account and knowledge of a target credential_id.

Technical ContextAI

ToolJet is a NestJS-based open-source platform for building internal tools and workflows. Its data-source layer stores encrypted credentials via a CredentialsService. The affected handler, POST /api/data-sources/decrypt, calls CredentialsService.getValue() with a caller-supplied credential_id and returns the decrypted plaintext. Unlike adjacent data-source routes that apply the ValidateDataSourceGuard NestJS guard and inject the calling @User() context to enforce organization scoping, this endpoint was left unguarded and context-free. The root cause is CWE-639 (Authorization Bypass Through User-Controlled Key): the caller fully controls the lookup key (credential_id) and the service performs no authorization check to verify the credential belongs to the caller's organization. Affected product is identified by CPE cpe:2.3:a:tooljet:tooljet:*:*:*:*:*:*:*:*, covering all releases before 3.20.1780-lts.

RemediationAI

Upgrade ToolJet to version 3.20.1780-lts or later, which is the vendor-released patch that adds ValidateDataSourceGuard and correct organization-scoped authorization to the POST /api/data-sources/decrypt endpoint. The authoritative advisory is at https://github.com/ToolJet/ToolJet/security/advisories/GHSA-x7qj-hfg8-p4cw. If immediate patching is not possible, restrict access to the /api/data-sources/decrypt route at the reverse proxy or WAF layer to a known-safe set of internal IPs or block it entirely - note this will break data-source testing and connection-validation features for end users. As a detection measure, audit application logs for POST /api/data-sources/decrypt requests where the credential_id in the body does not belong to the requesting user's organization; anomalous cross-tenant lookups in logs may indicate prior exploitation. There is no known workaround that preserves full functionality without patching.

CVE-2022-3019 HIGH POC
8.8 Aug 29

The forgot password token basically just makes us capable of taking over the account of whoever comment in an app that w

CVE-2022-2631 HIGH POC
8.8 Aug 02

Improper Access Control in GitHub repository tooljet/tooljet prior to v1.19.0. Rated high severity (CVSS 8.8), this vuln

CVE-2022-23067 HIGH POC
8.8 May 18

ToolJet versions v0.5.0 to v1.2.2 are vulnerable to token leakage via Referer header that leads to account takeover . Ra

CVE-2022-2037 HIGH POC
8.0 Jun 09

Excessive Attack Surface in GitHub repository tooljet/tooljet prior to v1.16.0. Rated high severity (CVSS 8.0), this vul

CVE-2022-27978 HIGH POC
7.5 Apr 26

Tooljet v1.6 does not properly handle missing values in the API, allowing attackers to arbitrarily reset passwords via a

CVE-2022-3422 HIGH POC
7.5 Oct 07

Account Takeover :: when see the info i can see the hash pass i can creaked it ............... Rated high severity (CVSS

CVE-2022-4111 MEDIUM POC
6.5 Nov 22

Unrestricted file size limit can lead to DoS in tooljet/tooljet <1.27 by allowing a logged in attacker to upload profile

CVE-2022-27979 MEDIUM POC
5.4 Apr 26

A cross-site scripting (XSS) vulnerability in ToolJet v1.6.0 allows attackers to execute arbitrary web scripts or HTML v

CVE-2026-55413 CRITICAL
9.4 Jun 25

Stored code injection in ToolJet self-hosted (prior to 3.20.178-lts) lets any authenticated builder-role user - availabl

CVE-2022-23068 MEDIUM POC
5.4 May 18

ToolJet versions v0.6.0 to v1.10.2 are vulnerable to HTML injection where an attacker can inject malicious code inside t

CVE-2022-3348 MEDIUM POC
4.9 Sep 28

Just like in the previous report, an attacker could steal the account of different users. Rated medium severity (CVSS 4.

CVE-2026-54344 HIGH
8.8 Jul 08

CI/CD pipeline injection in ToolJet's GitHub Actions render-preview deployment workflow (versions prior to 3.20.180) all

Share

EUVD-2026-39470 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy