Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-72539

CVE-2026-72539: Windmill Information Disclosure Flaw

CVE-2026-72539 is an information disclosure vulnerability in Windmill Labs Windmill through version 1.783.0 that exposes plaintext credentials in legacy ownerless drafts. This article covers technical details, affected versions, impact, and mitigation.

Published:

CVE-2026-72539 Overview

CVE-2026-72539 is an information disclosure vulnerability [CWE-200] affecting Windmill Labs Windmill through version 1.783.0. The flaw allows any authenticated workspace member to read legacy ownerless draft scripts containing plaintext resource credentials. Drafts with a null owner email bypass Access Control List (ACL) enforcement and are returned to any workspace member who queries the drafts endpoint. Sensitive credentials stored in these drafts leak across ACL boundaries, exposing secrets to users who should not have access.

Critical Impact

Any authenticated workspace member can retrieve plaintext resource credentials from legacy ownerless draft scripts, enabling lateral movement and unauthorized access to downstream systems connected via those credentials.

Affected Products

  • Windmill Labs Windmill through version 1.783.0
  • Legacy draft scripts with null owner email attribute
  • Workspaces containing pre-existing ownerless drafts

Discovery Timeline

  • 2026-08-11 - CVE-2026-72539 published to the National Vulnerability Database (NVD)
  • 2026-08-11 - Last updated in NVD database

Technical Details for CVE-2026-72539

Vulnerability Analysis

Windmill is a developer platform for building internal tools, workflows, and scripts. The platform enforces ACLs on script and resource access based on the owner attribute associated with each object. When a draft script exists without an owner email, the ACL check does not evaluate correctly and the draft is returned to any authenticated workspace member querying the drafts endpoint.

Draft scripts frequently contain hardcoded resource credentials during development. Because Windmill stores these drafts without encrypting embedded secrets, exposure through the drafts endpoint returns plaintext credentials directly to unauthorized workspace members. The impact scales with the sensitivity of stored resources, which commonly include database connections, cloud service tokens, and third-party API keys.

Root Cause

The root cause is missing authorization enforcement for records where the owner email field is null. The ACL logic treats absent ownership as an unrestricted state instead of denying access by default. Legacy drafts created before ownership was mandatory retain this null value and become universally readable within the workspace.

Attack Vector

An attacker requires authenticated access to a Windmill workspace with low privileges. The attacker queries the drafts endpoint and receives all ownerless draft scripts in the workspace response. Extracted credentials can then be used against connected resources, extending the attacker's reach beyond Windmill itself.

No verified public exploit code is available. Refer to the Windmill GitHub Project Repository for source-level details on affected endpoints and remediation commits.

Detection Methods for CVE-2026-72539

Indicators of Compromise

  • Unusual volume of requests to the Windmill drafts API endpoint from a single authenticated user.
  • Access to draft scripts by workspace members who are not the original authors.
  • Downstream authentication events using credentials previously stored only in Windmill drafts.

Detection Strategies

  • Audit Windmill application logs for GET requests to draft-listing endpoints and correlate against the requesting user's role.
  • Query the Windmill database for draft records where the owner_email field is null to identify exposed objects.
  • Rotate and monitor any credentials embedded in draft scripts, then watch for their use from unexpected source IPs or user agents.

Monitoring Recommendations

  • Enable verbose audit logging on the Windmill server and forward events to a central Security Information and Event Management (SIEM) platform.
  • Establish a baseline of drafts endpoint usage per user and alert on statistical outliers.
  • Monitor egress traffic from Windmill workers for connections to resources whose credentials appeared in ownerless drafts.

How to Mitigate CVE-2026-72539

Immediate Actions Required

  • Upgrade Windmill to a release later than 1.783.0 that enforces ACLs on ownerless drafts.
  • Enumerate all draft scripts with a null owner email and either assign ownership or delete them.
  • Rotate every credential, token, and secret that appeared inside legacy draft scripts.

Patch Information

Windmill Labs addresses the flaw in versions released after 1.783.0. Consult the Windmill GitHub Project Repository for the specific commit that enforces default-deny ACL behavior on records with a null owner email. Apply the update to all self-hosted Windmill instances and verify that hosted deployments have received the patch.

Workarounds

  • Restrict workspace membership to trusted users until the patched version is deployed.
  • Manually assign an owner email to every existing draft script through the database or administrative interface.
  • Remove plaintext credentials from draft scripts and migrate secrets to Windmill's dedicated resource and variable stores with proper ACLs.
bash
# Identify ownerless drafts in the Windmill PostgreSQL database
psql -d windmill -c "SELECT workspace_id, path, created_at FROM draft WHERE owner_email IS NULL;"

# Delete legacy ownerless drafts after credential rotation
psql -d windmill -c "DELETE FROM draft WHERE owner_email IS NULL;"

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.