CVE-2026-45807 Overview
CVE-2026-45807 is a path traversal vulnerability [CWE-22] in Kestra, an open-source event-driven orchestration platform. The flaw affects Kestra versions prior to 1.0.43 and 1.3.19. Several API endpoints accept a kestra:// URI from the client and route it through StorageInterface.parentTraversalGuard before reading files from the local storage backend. The guard inspects only the literal URI string, allowing URL-encoded .. sequences (%2E%2E) to bypass validation. An authenticated user can read arbitrary files accessible to the Kestra process, including /etc/passwd, mounted secrets, and other tenants' execution outputs.
Critical Impact
Authenticated attackers can read any file on the host filesystem accessible to the Kestra process, exposing secrets, credentials, and cross-tenant execution data.
Affected Products
- Kestra versions prior to 1.0.43
- Kestra versions in the 1.3.x branch prior to 1.3.19
- Deployments using the local storage backend via StorageInterface
Discovery Timeline
- 2026-06-26 - CVE-2026-45807 published to NVD
- 2026-07-01 - Last updated in NVD database
Technical Details for CVE-2026-45807
Vulnerability Analysis
The vulnerability resides in how Kestra validates client-supplied kestra:// URIs before file access. Multiple API endpoints route incoming URIs through StorageInterface.parentTraversalGuard, which is intended to block directory traversal attempts. The guard performs its check against URI.toString(), comparing the literal string representation without decoding percent-encoded characters. This creates an inconsistency between validation and downstream file resolution.
An authenticated user with permission to run a single execution can exploit this to read files outside the intended storage boundary. Reachable targets include operating system files such as /etc/passwd, mounted Kubernetes secrets, cloud credential files, and execution artifacts belonging to other tenants sharing the same Kestra instance.
Root Cause
The root cause is inconsistent encoding handling between the validation guard and the file resolution logic. parentTraversalGuard inspects the raw URI string, where %2E%2E is treated as an opaque literal rather than a .. segment. After the guard returns, the code calls URI.getPath(), which decodes percent-encoded octets, converting %2E%2E back to ... The decoded path is then passed to Paths.get(...) without normalization. The operating system resolves the parent-directory segments during the open(2) system call, escaping the storage root.
Attack Vector
Exploitation requires an authenticated Kestra account with permission to submit at least one execution. The attacker crafts a request to an affected API endpoint containing a kestra:// URI where directory traversal segments are URL-encoded (for example, replacing .. with %2E%2E). The literal guard passes the encoded URI, and the file backend opens the target file after OS-level path resolution. The vulnerability does not allow write access or code execution, but confidentiality impact is high because any file readable by the Kestra process becomes accessible.
See the GitHub Security Advisory GHSA-3529-p4wf-xp79 for vendor-provided technical details.
Detection Methods for CVE-2026-45807
Indicators of Compromise
- API requests containing kestra:// URIs with URL-encoded characters such as %2E%2E, %2F, or %5C in path segments
- Kestra execution logs referencing files outside the configured storage root, including /etc/, /var/run/secrets/, or /proc/
- Unusual file read activity by the Kestra process user against system paths or other tenants' execution directories
Detection Strategies
- Inspect Kestra access logs and reverse-proxy logs for request bodies or query parameters containing percent-encoded traversal sequences targeting storage endpoints
- Correlate authenticated user sessions with file access events on the Kestra host to identify reads outside the expected storage.local.base-path directory
- Alert on read attempts to sensitive host paths such as /etc/passwd, /etc/shadow, or mounted secret directories from the Kestra process
Monitoring Recommendations
- Enable audit logging on Kestra API endpoints that accept kestra:// URIs and forward events to a centralized logging platform
- Monitor filesystem access by the Kestra service account using host-based telemetry or eBPF-based file access monitoring
- Track authenticated user execution patterns and flag accounts issuing repeated requests with encoded path segments
How to Mitigate CVE-2026-45807
Immediate Actions Required
- Upgrade Kestra to version 1.0.43 or 1.3.19 or later without delay
- Rotate any credentials, API tokens, or secrets that were readable from the Kestra host filesystem, as they may already be exposed
- Review authentication logs and execution history for suspicious activity involving encoded kestra:// URIs since deployment
Patch Information
The vulnerability is fixed in Kestra 1.0.43 and 1.3.19. The fix normalizes and decodes URIs before passing them to parentTraversalGuard, ensuring encoded traversal segments are evaluated consistently with downstream file resolution. Refer to the Kestra GitHub Security Advisory GHSA-3529-p4wf-xp79 for release notes and upgrade guidance.
Workarounds
- Restrict Kestra API access to trusted networks using firewall rules or a reverse proxy until patching is complete
- Run the Kestra process under a dedicated low-privilege user with filesystem access limited to the storage root and required runtime directories
- Deploy Kestra in a container with a read-only root filesystem and mount only the required storage volume to limit reachable files
- Add a web application firewall rule to block requests containing %2E%2E or other encoded traversal sequences in Kestra API paths
# Example: upgrade Kestra container image to a patched version
docker pull kestra/kestra:1.3.19
docker stop kestra && docker rm kestra
docker run -d --name kestra \
--read-only \
--user 1000:1000 \
-v /opt/kestra/storage:/app/storage \
-p 8080:8080 \
kestra/kestra:1.3.19 server standalone
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

