windmill-workflows
Audited by Socket on Mar 1, 2026
4 alerts found:
Obfuscated Filex2AnomalyMalwareThe module implements legitimate PDF/image processing utilities by delegating to native CLI tools. I did not find code that explicitly communicates over the network, exfiltrates data, or contains obfuscated backdoors. Nonetheless, the code poses meaningful security risks: command injection via unescaped shell interpolation of user-controlled inputs, exposure of secrets on command lines, predictable temp paths with TOCTOU/symlink risk, reliance on non-absolute tool paths (PATH tampering risk), and brittle parsing of CLI outputs. If this code runs in a trusted, isolated environment with trusted inputs, the risks are reduced; otherwise, hardening is strongly recommended: avoid shell interpolation (use exec with argv arrays or Bun APIs that pass arguments safely), quote/escape inputs, use secure temp file APIs, avoid placing secrets on command lines, validate filenames/paths, and use absolute paths or verify tool binaries. Overall: legitimate functionality but moderate-to-high operational security risk without hardening.
This is documentation for deploying Windmill; it does not contain executable malicious code. However it includes insecure defaults and risky operational guidance that can lead to serious compromise if followed without hardening: notably the example DB password and admin credentials, mounting /var/run/docker.sock into a worker container, use of floating image tags, and plaintext secrets in environment variables. These are security misconfigurations and supply-chain/deployment risks rather than explicit malware in this file. Operators should change default credentials, avoid or properly secure Docker socket access (or use controlled APIs/sandboxing), pin image versions/digests, and use secret management.
This Dockerfile and deployment configuration are not overtly malicious, but they present significant operational security risks. The most critical issues are running the container as root while mounting the host Docker socket and downloading a prebuilt binary without integrity verification. These choices make the environment prone to host compromise if any component is vulnerable or a downloaded artifact is tampered with. Recommended actions: avoid mounting docker.sock into root containers (use a socket-proxy or dedicated privileged agent), run worker processes as non-root and employ user namespaces, enforce binary integrity (checksums/signatures) for external downloads, apply seccomp/AppArmor profiles and drop unnecessary capabilities, sandbox document processing (process untrusted files in ephemeral unprivileged containers), and minimize optional large packages (e.g., LibreOffice) or isolate them. Overall risk is moderate-high operationally; code itself shows no explicit malware.
This skill/instruction set is generally coherent for its stated purpose (building Windmill worker images and running PDF/image CLI tools). However, there are moderate supply-chain and runtime risks: the Dockerfile uses an unverified curl|tar install of a prebuilt binary (no checksum), Bun script examples run shell commands with interpolated user data (possible command injection), the compose example mounts the Docker socket, and environment variables (DATABASE_URL) are forwarded into containers without guidance on secret handling. These patterns are common in self-hosting guides but increase attack surface and credential exposure. Recommendations: pin and verify downloaded binaries (checksums/GPG), avoid shell interpolation of untrusted inputs (use argument arrays or escaping), use secrets management for DB URLs, avoid mounting docker.sock unless strictly necessary and documented with mitigations, and use secure temporary file creation.