CVE-2026-49869
Critical · 10.0 CISA KEVCVSS
10.0
EPSS
2.1%
Published
Jun 26, 2026
CISA due date
Sep 5, 2026
Cloudanix analysis
A simple URL check error lets outsiders skip login and run any commands they want on the automation system servers.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Trivial
- Impact
- Full Compromise
- Component
- Application
- Class
- Command Injection
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
AuthenticationFilter performs a suffix match on request.getPath().endsWith("/configs") instead of an exact match, allowing any API path terminating in /configs to bypass Basic Auth entirely and reach workflow creation/execution endpoints; combined with default-enabled script execution plugins this yields unauthenticated RCE as root inside worker containers.
Why it matters to the business
Attackers can create and run arbitrary workflows that execute code on orchestration infrastructure without credentials, enabling full compromise of automation pipelines, data exfiltration, and operational disruption; active exploitation and CISA KEV listing with a September 2026 remediation deadline require immediate action.
How an attack unfolds
An unauthenticated remote attacker sends HTTP requests whose paths end with /configs to evade the AuthenticationFilter, obtains unauthenticated access to the workflow API, creates a workflow that invokes plugin-script-shell or plugin-script-python, and executes it to run arbitrary commands as root inside the Kestra worker container.
How to fix it
Upgrade Kestra OSS to version 1.0.45 or 1.3.21 (or later) to replace the suffix-based path check with an exact match; until patches are applied, restrict network access to the API and disable unnecessary script plugins.
How to confirm the fix worked
Confirm installed version is at least 1.0.45 or 1.3.21; test that requests to non-exact paths ending in /configs now receive 401 responses; review AuthenticationFilter source for exact path equality check.
Typical attack path
- Craft HTTP request to any path ending in /configs to bypass authentication
- Call workflow creation API without credentials
- Define workflow containing malicious script-execution task
- Trigger workflow execution to obtain RCE as root
How to detect it
Inspect web server or API gateway logs for requests whose paths end with /configs that lack authentication tokens or receive successful responses; correlate with subsequent workflow creation events and script-plugin task executions in Kestra audit logs.
- request path endsWith /configs returning 200 without Authorization header
- workflow creation API calls lacking credentials
- plugin-script-shell or plugin-script-python task execution from newly created workflows
What your security team should do
- Apply the 1.0.45 or 1.3.21 upgrade immediately given KEV status and active exploitation
- Add network controls to limit unauthenticated API access until patched
- Audit existing workflows for unauthorized creation or execution artifacts
- Monitor EPSS trend and threat actor activity for increased targeting
The record
Kestra is an open-source, event-driven orchestration platform. Prior to 1.0.45 and 1.3.21, AuthenticationFilter in Kestra OSS uses request.getPath().endsWith("/configs") to whitelist the public configuration endpoint from Basic Auth. Because the check is a suffix match rather than an exact path match, any API path whose last segment is configs bypasses authentication entirely. An unauthenticated remote attacker can exploit this to create and execute arbitrary workflows without credentials. Because Kestra ships with script execution plugins (plugin-script-shell, plugin-script-python, etc.) enabled by default, this directly results in unauthenticated Remote Code Execution as root inside the Kestra worker container. This vulnerability is fixed in 1.0.45 and 1.3.21.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-96376 Improper Neutralization of Special Elements used in an OS Command ("OS Command… CWE-78
- CVE-2026-113732 virtualenv is a tool for creating isolated virtual python environments. CWE-78
- CVE-2026-113776 virtualenv is a tool for creating isolated virtual python environments. CWE-78
- CVE-2026-113726 virtualenv is a tool for creating isolated virtual python environments. CWE-78
- CVE-2026-113725 virtualenv is a tool for creating isolated virtual python environments. CWE-78
- CVE-2026-113722 virtualenv is a tool for creating isolated virtual python environments. CWE-78
- CVE-2026-112943 launch-editor allows users to open files with line numbers in editor from Node.js. CWE-78
- CVE-2026-112900 Pillow is a Python imaging library. CWE-78