CVE-2026-55411
Deferred Deferred - Pending Action
Unauthenticated Credential Decryption in ToolJet

Publication date: 2026-06-25

Last updated on: 2026-06-25

Assigner: GitHub, Inc.

Description
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.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-06-25
Last Modified
2026-06-25
Generated
2026-06-26
AI Q&A
2026-06-25
EPSS Evaluated
N/A
NVD
EUVD
Affected Vendors & Products
Showing 3 associated CPEs
Vendor Product Version / Range
tooljet tooljet to 3.20.1780-lts (inc)
tooljet tooljet to 3.20.1780-lts (exc)
tooljet tooljet 3.20.1780-lts
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-863 The product performs an authorization check when an actor attempts to access a resource or perform an action, but it does not correctly perform the check.
CWE-639 The system's authorization functionality does not prevent one user from gaining access to another user's data or record by modifying the key value identifying the data.
Attack-Flow Graph
AI Quick Actions
Instant insights powered by AI
Compliance Impact

This vulnerability causes a cross-tenant confidentiality breach by allowing authenticated users to decrypt data-source secrets belonging to other organizations. Such unauthorized access to sensitive information like database passwords or API keys can lead to violations of data protection requirements in common standards and regulations such as GDPR and HIPAA, which mandate strict controls on data confidentiality and access.

Because the vulnerability enables exposure of sensitive credentials across organizational boundaries, it undermines the principle of data segregation and confidentiality required by these regulations, potentially resulting in non-compliance and associated legal or regulatory consequences.

Executive Summary

This vulnerability exists in ToolJet versions prior to 3.20.1780-lts. The authenticated endpoint POST /api/data-sources/decrypt returns decrypted plaintext credentials when given a credential_id. Unlike other similar endpoints, this one lacks proper protection mechanisms such as ValidateDataSourceGuard and does not verify the organization scope of the credential. As a result, any authenticated user from any organization can decrypt and access the data-source secrets of other organizations by supplying their credential_id, leading to a cross-tenant confidentiality breach.

Impact Analysis

This vulnerability can lead to unauthorized access to sensitive credentials across different organizations using the ToolJet platform. An authenticated user from one organization can decrypt and obtain confidential data-source secrets belonging to other organizations, potentially exposing sensitive information and compromising data confidentiality.

Mitigation Strategies

To mitigate this vulnerability, you should upgrade ToolJet to version 3.20.1780-lts or later, where the issue has been fixed.

Until the upgrade is applied, restrict authenticated user access to the POST /api/data-sources/decrypt endpoint to prevent unauthorized decryption of credentials across organizations.

Detection Guidance

This vulnerability can be detected by testing the POST /api/data-sources/decrypt endpoint with authenticated user credentials to see if it returns decrypted secrets for credential_ids belonging to other organizations.

A practical approach is to send a POST request to the endpoint with a credential_id from a different organization and observe if the decrypted plaintext is returned, indicating the vulnerability.

Example command using curl:

  • curl -X POST https://[tooljet-server]/api/data-sources/decrypt -H "Authorization: Bearer [your_auth_token]" -H "Content-Type: application/json" -d '{"credential_id": "[credential_id_of_other_org]"}'

If the response contains decrypted secrets for the supplied credential_id, the system is vulnerable.

Chat Assistant
Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-55411. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70
EPSS Chart