CVE-2026-49984: Kestra Path Traversal Allows Arbitrary File Read Across Tenants
Kestra, an open-source workflow orchestration platform, contains a path-traversal vulnerability that allows authenticated users to read files anywhere on the server filesystem. The flaw exists because Kestra checks user-supplied file paths for directory traversal attacks using forward slashes, but an attacker can bypass this check by using Windows-style backslashes instead. After the validation passes, the backslashes are converted to forward slashes, enabling the traversal. Any user with the ability to view a workflow execution—the lowest privilege level in Kestra—can exploit this to escape the storage sandbox and read sensitive files across all tenants and namespaces, including databases, secrets, and system credentials.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 7.7 HIGH · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
- Weaknesses (CWE)
- CWE-180, CWE-200, CWE-22
- Affected products
- 1 configuration(s)
- Published / Modified
- 2026-06-26 / 2026-07-01
NVD description (verbatim)
Kestra is an open-source, event-driven orchestration platform. Prior to 1.0.45 and 1.3.23, the local internal-storage backend validates user-supplied paths for .. traversal before it converts Windows-style backslashes to forward slashes. An attacker can therefore smuggle a traversal sequence past the guard using backslashes (..\..\..\); the guard sees a harmless string, and the path is only rewritten to ../../../ after validation, immediately before the file is opened. Any authenticated user who can view an execution (the lowest-privilege role) can call GET /api/v1/{tenant}/executions/{executionId}/file?path=… and read any file on the server filesystem readable by the Kestra process, outside the storage sandbox and across every tenant and namespace. This includes the embedded H2 database (all flows, all users, all stored secrets), internal storage of every other tenant/namespace, mounted secret files, and the process environment (/proc/self/environ) which contains configured database and secret-backend credentials. It is a complete breach of Kestra's storage isolation and multi-tenancy boundary. This vulnerability is fixed in 1.0.45 and 1.3.23.
2 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The vulnerability is a directory traversal flaw in Kestra's local internal-storage backend affecting versions prior to 1.0.45 and 1.3.23. The root cause is a validation-order issue: the platform sanitizes paths for .. sequences before normalizing Windows backslashes to forward slashes. An attacker crafts a path using backslash notation (e.g., ..\..\..\) which passes the guard as a 'harmless string' (backslashes are not recognized as traversal syntax during validation), but is later converted to ../../../ immediately before file access. This allows reading arbitrary files accessible to the Kestra process, bypassing multi-tenancy and namespace isolation. Affected file classes include the embedded H2 database (containing all workflows, user data, and encrypted secrets), filesystem storage of other tenants, mounted secret files, and the process environment file. The vulnerability is classified as CWE-22 (Improper Limitation of a Pathname to a Restricted Directory), CWE-180 (Incorrect Behavior of Source-Code Preprocessor), and CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor).
Business impact
This vulnerability represents a critical breach of Kestra's core security model. For multi-tenant deployments, it allows complete cross-tenant data exfiltration: an attacker in one tenant can read flows, schedules, and secrets belonging to all other tenants. For single-tenant installations, all sensitive data—including plaintext or weakly encrypted credentials, API keys, and database passwords stored in the environment—becomes accessible to any user with execution-view permissions, a role typically granted to operators and developers. The compromise of database credentials and secret-backend tokens enables further lateral movement and persistence. Organizations relying on Kestra's isolation guarantees for regulatory compliance or multi-team security boundaries face immediate risk of data breaches and credential theft.
Affected systems
Kestra versions prior to 1.0.45 and 1.3.23 are affected. The vulnerability applies to deployments using the local internal-storage backend (the default for self-hosted Kestra). Impact depends on deployment architecture: multi-tenant Kestra instances suffer complete isolation failure, while single-tenant instances expose all files readable by the Kestra process user (typically a service account with broad filesystem access). Cloud-hosted or managed Kestra services should be assessed for tenant isolation by the vendor.
Exploitability
Exploitability is straightforward. The vulnerability requires only authenticated access at the lowest privilege level (execution-viewer role) and a simple HTTP GET request with a crafted path parameter. No special tooling or network position is required; the attack works over standard REST APIs. The barrier to exploitation is low because execution-viewer access is commonly granted to development and operations teams. No user interaction or race conditions are involved; the attack is deterministic and repeatable.
Remediation
Upgrade immediately to version 1.0.45 (for 1.0.x series) or 1.3.23 (for 1.3.x series) or later. These versions fix the validation-order bug by sanitizing paths after converting backslash notation to forward slashes. Vendors should consult the official Kestra release notes to verify the exact patched versions for their deployment. In the interim, apply compensating controls: restrict the local filesystem permissions of the Kestra process user to only required directories; limit execution-viewer role assignment to trusted administrators; and monitor API access logs for suspicious /api/v1/*/executions/*/file requests with path parameters containing backslashes or ../ sequences.
Patch guidance
Kestra has released fixes in 1.0.45 and 1.3.23. Organizations should upgrade to the earliest available patched version within their current release series. Verify patch application by confirming the version number in the Kestra admin interface or API response headers. Test in a non-production environment first to ensure compatibility with custom flows or integrations. If a gap exists between your current version and the patched version, prioritize this as an emergency update due to the high severity and low exploitation barrier.
Detection guidance
Monitor Kestra API logs for GET requests to /api/v1/{tenant}/executions/{executionId}/file with path parameters containing backslash characters (\) or directory traversal sequences (.. or ..). Alert on any such requests regardless of HTTP status, as successful exploitation may not always return errors. Additionally, audit access logs to identify which users accessed the file-download endpoint and from which source IPs. For runtime detection, monitor the Kestra process for unusual file-open syscalls targeting files outside the configured storage directory. Review Kestra audit logs for role assignments that grant execution-viewer permissions, and correlate unexpected role grants with recent user or API activity.
Why prioritize this
This vulnerability merits immediate patching because it enables unauthenticated access to secrets, credentials, and multi-tenant data with minimal effort and no exploitation complexity. The CVSS score of 7.7 (HIGH) reflects high confidentiality impact and cross-tenant scope, but the actual risk is arguably higher due to the trivial barrier to exploitation and the centrality of the affected file store to Kestra's security model. Any Kestra deployment should be considered compromised if exposed to untrusted users with execution-viewer access prior to patching.
Risk score, explained
The CVSS v3.1 score of 7.7 (HIGH) reflects: network accessibility (AV:N), low complexity to exploit (AC:L), requirement for authentication but at a low privilege level (PR:L), changed scope indicating cross-tenant/sandbox breakout (S:C), high confidentiality impact (C:H), no integrity or availability impact (I:N, A:N). The score accurately captures the severity of data exfiltration but does not fully account for the triviality of exploitation or the scope of sensitive data at risk in typical deployments. Organizations should treat this as functionally critical despite the 'HIGH' rating.
Frequently asked questions
Can I rely on Kestra's RBAC to prevent this attack?
No. Even users with the lowest execution-viewer role can exploit this vulnerability. The flaw is in the backend storage validation, not the API authorization layer. RBAC does not protect against it; only upgrading to a patched version eliminates the risk.
If I'm using Kestra with an external storage backend (S3, GCS) instead of local storage, am I affected?
The vulnerability is specific to the local internal-storage backend. If your deployment uses an external object store, you are not directly affected by this path-traversal flaw, but you should still verify your Kestra version and upgrade for defense-in-depth and any other potential issues.
What data is most at risk if this is exploited?
The embedded H2 database (default) is the highest-value target, containing all workflow definitions, user credentials, scheduling data, and encrypted secrets. An attacker can also extract environment variables, which often contain database passwords, API tokens, and secret-backend credentials needed for lateral movement. Cross-tenant deployments face complete isolation failure.
Should I reset all secrets and credentials if I've been running an unpatched version?
Yes, if you operate a multi-tenant Kestra instance or have untrusted users with execution-viewer access, assume the worst-case scenario: all files readable by the Kestra process have been compromised. Rotate all secrets, API keys, database credentials, and tokens managed by or stored in Kestra before fully trusting the platform again after patching.
This analysis is provided for informational purposes and is based on the published CVE description and CVSS assessment. Organizations should verify patch availability and compatibility with their specific Kestra deployment before applying updates. Testing in a non-production environment is strongly recommended. For detailed technical guidance, refer to the official Kestra security advisory and vendor documentation. This intelligence does not constitute legal or compliance advice; consult your organization's security and legal teams regarding incident response, disclosure obligations, and regulatory requirements specific to your use case. Source: NVD (public-domain), retrieved 2026-08-05. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-53571HIGHVite Windows Path Traversal Exposes .env and Certificates
- CVE-2026-49219MEDIUMImageMagick Policy Bypass via Symlink Path Traversal
- CVE-2026-49356LOWBabel @babel/core Arbitrary Source Map File Read Vulnerability
- CVE-2026-9153MEDIUMRapid7 InsightConnect Sed Plugin Arbitrary File Read Vulnerability
- CVE-2026-45807HIGHKestra Path Traversal Vulnerability (v1.0.43, v1.3.19 Patch)
- CVE-2016-20076HIGHWordPress Simple-Backup 2.7.11 Unauthenticated File Access & Deletion Vulnerability
- CVE-2016-20081HIGHHB Audio Gallery Lite Path Traversal Vulnerability – Unauthenticated File Download
- CVE-2017-20248HIGHApptha Slider Gallery Path Traversal Vulnerability