Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconLog in with free-tier builder account
-
DeliveryOpen globally-shared marketplace plugin
-
ExploitInject malicious Node.js JavaScript
-
InstallSave/overwrite shared plugin
-
C2Victim query triggers plugin
-
ExecuteCode executes server-side as ToolJet process
-
ImpactRCE and instance-wide supply-chain compromise
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Code injection prevention, sandbox exec
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an authenticated account holding the builder role, which the advisory notes is available on the free tier, lowering the practical barrier substantially (CVSS PR:L). The specific prerequisite is the ability to edit/overwrite a globally-shared marketplace plugin, and the malicious code only executes once any user on the instance triggers a query that uses that tampered plugin - so there is a dependency on the poisoned plugin actually being invoked. What limits exploitation: the attacker must have a valid builder-role login (not fully unauthenticated), the affected instance must be a self-hosted ToolJet deployment prior to 3.20.178-lts, and impact is realized only when the shared plugin is exercised by a query. There is no user-interaction requirement on the victim beyond normally running queries (UI:N). |
| Impact | Signals are largely consistent and point to a genuine high priority for any organization running self-hosted ToolJet with untrusted or numerous builder accounts. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) describes network-reachable, low-complexity exploitation requiring only low privileges and no user interaction, with high confidentiality, integrity, and availability impact on both the vulnerable system and subsequent systems (VC/VI/VA and SC/SI/SA all High) - the latter reflecting the supply-chain blast radius across all users. The decisive aggravating factor is that the required builder role is available on the free tier, so the PR:L barrier is very low in practice. Tempering factors: exploitation is not zero-click from an anonymous attacker (an account is needed), and there is no public exploit identified and no KEV listing, so widespread opportunistic exploitation is not currently evidenced; EPSS and SSVC data were not provided in the input and cannot be cited. In short, this is a real priority driven by trivial-to-obtain privileges and total impact, not merely an inflated CVSS number, but observed in-the-wild activity is unconfirmed. |
| Exploit ScenarioDerived | An attacker registers or uses a free-tier builder account on a self-hosted ToolJet instance, opens a globally-shared marketplace plugin, and replaces its logic with JavaScript that uses |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 25, 2026
Stored code injection in ToolJet self-hosted (prior to 3.20.178-lts) lets any authenticated builder-role user - available on the free tier - overwrite a globally-shared marketplace plugin with arbitrary JavaScript that runs server-side with full Node.js capabilities (require, process). Because the poisoned plugin executes whenever any user on the instance runs a query that uses it, a single low-privileged account achieves remote code execution and an instance-wide supply-chain compromise. The flaw carries a CVSS 4.0 score of 9.4; there is no public exploit identified at time of analysis and it is not listed in CISA KEV.
RemediationAI
Vendor-released patch: upgrade ToolJet to 3.20.178-lts or later, which fixes the issue (see the advisory at https://github.com/ToolJet/ToolJet/security/advisories/GHSA-jgmf-cw3v-r98x). Until the upgrade is applied, reduce exposure by tightly restricting who can hold the builder role and by limiting account creation so untrusted users cannot reach the plugin-editing capability - note this curtails legitimate self-service app building. Where feasible, restrict or disable the ability to edit or overwrite globally-shared marketplace plugins, audit existing shared plugins for unexpected JavaScript before and after upgrading, and run the ToolJet server with least privilege (non-root container, restricted egress, minimal environment secrets) so that any code execution is contained; the trade-off is added operational friction and potential breakage of plugins that legitimately rely on Node.js modules. After patching, rotate any secrets that were reachable from the server process, since a prior compromise cannot be ruled out.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
ToolJet is an open-source low-code platform for building internal tools, workflows, and AI agents, with a marketplace of plugins that connect to data sources and run query logic. The root cause is CWE-94 (Improper Control of Generation of Code, i.e., code injection): plugin definitions are treated as trusted code and executed in the Node.js server runtime, but the platform fails to isolate plugin source from an attacker or to restrict who may modify a globally-shared plugin. Marketplace plugins appear to run in the main server context rather than a sandbox, so injected code inherits the Node.js process environment, including require (arbitrary module/file access) and process (environment variables, child process spawning). The affected component is the ToolJet application itself (CPE cpe:2.3:a:tooljet:tooljet), and the shared, multi-tenant nature of the plugin store is what converts a single tampered plugin into a path that affects every user and query on the deployment.
Know when Tooljet gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
Network-reachable with a low-privilege free-tier builder account (PR:L), no interaction; injected code crosses from the plugin into the server runtime affecting all users, so Scope:Changed with full C/I/A impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.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.178-lts, any authenticated user with builder role (free tier) can overwrite a globally-shared marketplace plugin with arbitrary JavaScript that executes server-side with full Node.js access (require, process). The malicious code runs whenever any user on the instance triggers a query using that plugin - achieving both RCE and supply-chain compromise of the entire ToolJet deployment. This vulnerability is fixed in 3.20.178-lts.
Articles & Coverage 1
Executive ViewAI
ToolJet self-hosted instances running versions prior to 3.20.178-lts contain a stored code injection vulnerability in the marketplace plugin system that allows authenticated builder-role users to achieve remote code execution with full Node.js server capabilities. This enables a single low-privileged account to compromise the entire instance and poison shared plugins that execute across all users, creating an instance-wide supply-chain attack vector. Organizations using ToolJet self-hosted must immediately restrict builder-role access and implement mitigations, as no vendor patch is currently available.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Restrict builder-role access to trusted administrators only; revoke builder access for non-essential users. (2) Implement network segmentation to isolate ToolJet instances and limit lateral movement. (3) Enable and actively monitor query execution logs and plugin modification audit trails for anomalies. (4) Audit all marketplace plugins currently deployed; disable or remove unused marketplace functionality. (5) Restrict Node.js module access (require, process) at the application level if configuration options exist. (6) Schedule monthly reviews of builder account activity and plugin catalog for unauthorized changes.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
The forgot password token basically just makes us capable of taking over the account of whoever comment in an app that w
Improper Access Control in GitHub repository tooljet/tooljet prior to v1.19.0. Rated high severity (CVSS 8.8), this vuln
ToolJet versions v0.5.0 to v1.2.2 are vulnerable to token leakage via Referer header that leads to account takeover . Ra
Excessive Attack Surface in GitHub repository tooljet/tooljet prior to v1.16.0. Rated high severity (CVSS 8.0), this vul
Tooljet v1.6 does not properly handle missing values in the API, allowing attackers to arbitrarily reset passwords via a
Account Takeover :: when see the info i can see the hash pass i can creaked it ............... Rated high severity (CVSS
Unrestricted file size limit can lead to DoS in tooljet/tooljet <1.27 by allowing a logged in attacker to upload profile
A cross-site scripting (XSS) vulnerability in ToolJet v1.6.0 allows attackers to execute arbitrary web scripts or HTML v
ToolJet versions v0.6.0 to v1.10.2 are vulnerable to HTML injection where an attacker can inject malicious code inside t
Just like in the previous report, an attacker could steal the account of different users. Rated medium severity (CVSS 4.
CI/CD pipeline injection in ToolJet's GitHub Actions render-preview deployment workflow (versions prior to 3.20.180) all
Server-side request forgery in ToolJet's RestAPI data source (versions prior to 3.20.178-lts) allows a low-privileged pl
EUVD-2026-39467
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB