MEDIUM 4.7

CVE-2026-54344: ToolJet GitHub Actions Command Injection – CI Secret Exfiltration Risk

ToolJet is an open-source low-code platform used to build internal business tools. A vulnerability in versions prior to 3.20.180 allows unauthorized command execution on CI/CD runners through GitHub pull request comments. Any user with the ability to comment on an open pull request can inject shell commands by crafting a comment with a deploy command, potentially extracting sensitive deployment credentials stored in the CI environment. The flaw stems from unsafe interpolation of user-controlled input directly into bash conditionals without sanitization.

Source data · NVD / CISA · public domain

CVSS
3.1 · 4.7 MEDIUM · CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N
Weaknesses (CWE)
CWE-78
Affected products
0 configuration(s)
Published / Modified
2026-07-08 / 2026-07-09

NVD description (verbatim)

ToolJet is an open-source low-code platform for building internal tools. Prior to 3.20.180, ToolJet's render preview deployment workflow interpolates github.event.comment.body directly into a bash conditional in a run step, allowing any GitHub user who can comment on an open pull request with a deploy command to execute shell commands on the CI runner and exfiltrate deployment secrets. This issue is reported as fixed in version 3.20.180.

2 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

CVE-2026-54344 exploits improper input validation in ToolJet's render preview deployment workflow. The vulnerability exists in a GitHub Actions workflow where github.event.comment.body is directly interpolated into a bash conditional statement in a run step. This allows shell metacharacter injection. An attacker who can comment on a pull request can structure a comment payload to break out of the intended bash syntax and execute arbitrary commands with the privileges of the CI runner. The attack surface includes access to environment variables, secrets, and the build context. The issue is fixed in version 3.20.180.

Business impact

Organizations using ToolJet for internal tool development face credential compromise and potential supply-chain risk. Attackers can extract deployment secrets, API keys, and other sensitive environment variables from the CI environment, leading to unauthorized access to downstream services, data exfiltration, or lateral movement. The threat is elevated in organizations where pull request commenting permissions are broadly granted to contractors, partners, or less-trusted team members. Compromised credentials could enable unauthorized deployments or access to production systems.

Affected systems

ToolJet versions prior to 3.20.180 are affected. The vulnerability is specific to the render preview deployment workflow and impacts organizations using GitHub Actions with the vulnerable workflow configuration. Open-source deployments and self-hosted instances using the default or modified CI/CD pipeline are at risk. Organizations running ToolJet 3.20.180 or later are not vulnerable.

Exploitability

Exploitability is straightforward for any user with pull request commenting privileges on a ToolJet repository. No authentication bypass is required beyond GitHub access. The attack requires no user interaction or special configuration; a single malicious comment on an open PR triggers command execution. However, the attack is limited to the network and privilege scope of the CI runner (CVSS Attack Vector: Adjacent). The barrier to exploitation is low, making this a practical risk for organizations with permissive PR access policies.

Remediation

Upgrade ToolJet to version 3.20.180 or later. This version implements proper input sanitization for github.event.comment.body before interpolation into bash conditionals. Organizations unable to upgrade immediately should restrict pull request commenting permissions to trusted contributors only and audit GitHub Actions secrets for exposure. Review CI/CD logs for suspicious comments or command executions during the vulnerability window.

Patch guidance

Update ToolJet to version 3.20.180 or later. Verify the fix by reviewing the deployment workflow configuration to confirm that github.event.comment.body is no longer directly interpolated into bash conditionals without escaping. Organizations should test the patched version in a staging environment before deploying to production CI/CD pipelines. Check vendor advisory documentation for any breaking changes or migration steps associated with this patch.

Detection guidance

Search GitHub Actions workflow logs and audit trails for comments containing shell metacharacters (backticks, $(), ||, &&, ;, |) combined with deploy commands on pull requests. Monitor CI runner environment variable access and command execution for unusual patterns. Look for failed or successful attempts to exfiltrate secrets (grep, cat, echo of credential patterns). Organizations with SIEM integration can flag workflows triggered by comments from untrusted users. Enable GitHub's secret scanning to detect any credentials that may have been extracted.

Why prioritize this

Although CVSS score is moderate (4.7), the practical exploitability is high because any PR commenter can trigger the vulnerability without elevated privileges. The impact—credential theft and CI environment compromise—directly threatens supply chain security. Organizations with broad pull request access should prioritize patching. The vulnerability requires minimal attacker skill and effort, making it a realistic threat in most development environments.

Risk score, explained

CVSS 4.7 (MEDIUM) reflects: Adjacent network attack vector limited to CI environment; low attack complexity; no privilege requirement; but confidentiality impact (secret exfiltration) and wide scope across CI/CD systems. The score appropriately captures the localized but significant nature of CI compromise. Practical risk may be higher for organizations with permissive PR policies, justifying expedited patching beyond the base CVSS rating.

Frequently asked questions

Can this vulnerability be exploited if pull request commenting is restricted to team members only?

Yes, but only by those team members with commenting privileges. If your organization restricts PR comments to a trusted group, the attack surface is proportionally smaller. However, any compromise of a trusted account can still trigger exploitation. Restricting access reduces but does not eliminate risk until patching is complete.

Will updating ToolJet break our existing workflows or deployments?

Version 3.20.180 fixes the vulnerability by sanitizing input, not by removing workflow functionality. Most deployments should be unaffected. However, verify against the vendor advisory and test in staging first, as any workflow changes could have environment-specific impacts. Consult ToolJet release notes for migration details.

What should we do if we think our secrets were exposed through this vulnerability?

Immediately rotate all deployment secrets, API keys, and credentials that may have been present in the CI environment during the vulnerability window. Review CI logs for evidence of exfiltration. Audit downstream systems (cloud accounts, repositories, services) for unauthorized access. Enable enhanced monitoring on accounts and services using compromised credentials.

How do I know if our ToolJet deployment is vulnerable?

Check your installed ToolJet version against 3.20.180. If you are running any version prior to 3.20.180, you are affected if you use the GitHub Actions render preview deployment workflow. If you cannot determine your version, examine your CI/CD configuration file (.github/workflows) to see if github.event.comment.body is referenced in bash conditionals without proper escaping.

This analysis is based on publicly available vulnerability data and vendor advisories current as of the publication date. Security circumstances, patch availability, and threat conditions may change. Organizations should verify patch versions and remediation steps directly against official ToolJet releases and GitHub Security Advisories. This content is for informational purposes and does not constitute professional security advice. Consult with your security team and vendor documentation for environment-specific guidance. No exploit code or weaponized proof-of-concept is provided or endorsed. Source: NVD (public-domain), retrieved 2026-08-17. Analysis generated by SEC.co (claude-haiku-4-5).