Description
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.
Published: 2026-06-26
Score: 7.7 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Kestra's internal storage backend validates paths for '..' traversal only before converting Windows‑style backslashes to forward slashes. An attacker can thus embed a traversal sequence such as '..\\..\\..', which passes the guard and is rewritten to '../../../' before the file is opened, allowing an authenticated user to read any server file accessible to the Kestra process. This violation of storage isolation lets any user with the lowest‑privilege view‑execution role download arbitrary files, including the embedded H2 database, secrets, and process environment variables.

Affected Systems

Kestra, published by kestra-io, is vulnerable in all releases before 1.0.45 and 1.3.23. version lower than these numbers uses the built‑in local internal‑storage backend and therefore is affected regardless of tenant or namespace configuration. No operating‑system restrictions are specified, so any Kestra installation using the default backend can be impacted.

Risk and Exploitability

The CVSS score of 7.7 signals a high‑severity confidentiality issue, but the EPSS score is not available and the vulnerability is not listed in CISA's KEV catalog. The exploit requires only an authenticated user with the view‑execution role, a privilege level that many users possess; once exploited, attackers can read sensitive configuration, database, and secret files across all tenants, constituting a full breach of Kestra's multi‑tenant isolation.

Generated by OpenCVE AI on June 26, 2026 at 22:39 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Kestra to version 1.0.45 or 1.3.23voke or restrict the view‑execution permission for users who do not need it.
  • If patching cannot be performed immediately, limit access to the /api/v1/{tenant}/executions/{executionId}/file endpoint to trusted IP addresses or implement API gateway controls.
  • Consider disabling the /api/v1/{tenant}/executions/{executionId}/file endpoint for users who do not require file access, reducing the attack surface.

Generated by OpenCVE AI on June 26, 2026 at 22:39 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 26 Jun 2026 21:30:00 +0000

Type Values Removed Values Added
Description 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.
Title Kestra: Path traversal in `LocalStorage` allows any authenticated user to read arbitrary server files via the execution file-download API (`\..\` bypasses the `..` guard)
Weaknesses CWE-180
CWE-200
CWE-22
References
Metrics cvssV3_1

{'score': 7.7, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-06-26T20:55:44.344Z

Reserved: 2026-06-02T18:30:51.282Z

Link: CVE-2026-49984

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-06-26T22:45:05Z

Weaknesses
  • CWE-180

    Incorrect Behavior Order: Validate Before Canonicalize

  • CWE-200

    Exposure of Sensitive Information to an Unauthorized Actor

  • CWE-22

    Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')