Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to Kestra with execution rights
-
DeliverySubmit kestra:// URI with %2E%2E-encoded traversal
-
ExploitBypass parentTraversalGuard literal check
-
ExecutionURI.getPath() decodes to '..' path
-
PersistOS resolves traversal at file open
-
ImpactRead host files, secrets, cross-tenant outputs
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an authenticated Kestra account with privileges to create or run at least one execution (CVSS PR:L), and the target instance must be running a vulnerable version (prior to 1.0.43 or 1.3.19) using the local storage backend that resolves kestra:// URIs through StorageInterface.parentTraversalGuard. The attacker must supply a URI whose traversal is URL-encoded (%2E%2E rather than literal '..') to bypass the guard. Limiting factors: a valid account and execution permission are mandatory (so unauthenticated internet attackers cannot exploit it directly), and the impact is bounded by the OS-level file permissions of the Kestra process account - files the process cannot read remain inaccessible. No user interaction or special client platform is needed. |
| Impact | The supplied CVSS:3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N = 7.7 High) indicates a network-reachable, low-complexity attack requiring only low privileges and no user interaction, with high confidentiality impact and a scope change - consistent with the description's claim that any authenticated user with one execution can read host files and cross tenant boundaries. The PR:L requirement is the main mitigating factor: the attacker must already hold a valid Kestra account with execution rights, which limits exposure on properly access-controlled instances but is significant in multi-tenant or shared deployments. No EPSS score, KEV listing, or POC indicator was provided, so likelihood of widespread automated exploitation cannot be quantified from the data; the absence of KEV/POC signals suggests no confirmed active exploitation, though the vulnerability is mechanically simple to weaponize once the guard bypass is known. The signals are internally consistent (no AV/PR conflict), so this is a credible real priority for any multi-tenant Kestra operator rather than a high-CVSS-but-low-real-risk issue. |
| Exploit ScenarioDerived | An attacker who holds a low-privilege Kestra account creates or triggers an execution and submits a kestra:// URI containing a URL-encoded traversal such as kestra://...%2E%2E%2E%2E/etc/passwd; the guard passes the literal string but URI.getPath() decodes it, and the OS resolves the '..' to read the target file. The same technique reads mounted Kubernetes/Docker secrets or other tenants' execution outputs, exfiltrating credentials usable for further compromise. No public exploit was identified at time of analysis, but the technique is straightforward given the published advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 26, 2026
Arbitrary file read in Kestra orchestration platform (versions prior to 1.0.43 and 1.3.19) lets an authenticated user with execution privileges read any file accessible to the Kestra process via a URL-encoded path-traversal in kestra:// storage URIs. The parentTraversalGuard checks only the literal URI string, so %2E%2E bypasses it before URI.getPath() decodes it back to '..', exposing /etc/passwd, mounted secrets, and other tenants' execution outputs. No public exploit identified at time of analysis; rated CVSS 7.7 with a scope change reflecting cross-tenant and host-filesystem exposure.
RemediationAI
Upgrade to a patched release: Kestra 1.0.43 for the 1.0.x branch or 1.3.19 for the 1.3.x branch (Vendor-released patch: 1.0.43 and 1.3.19), as documented in advisory GHSA-3529-p4wf-xp79 (https://github.com/kestra-io/kestra/security/advisories/GHSA-3529-p4wf-xp79). If immediate patching is not possible, reduce the authenticated attack surface by tightening RBAC so that only trusted users hold execution privileges, and isolate the Kestra process: run it under a dedicated low-privilege OS account with a minimal filesystem footprint (no readable host secrets or other tenants' data on the same mount), which limits what a successful traversal can disclose but does not close the bug. Where feasible, place the affected API endpoints behind network controls (restrict access to the execution/storage-read endpoints to trusted networks) and avoid mounting sensitive secrets into the Kestra container filesystem in favor of an external secrets manager; the trade-off is operational friction in workflows that legitimately read mounted files. These are stopgaps only - upgrading is the authoritative fix.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Kestra is an event-driven workflow orchestration platform that abstracts file storage behind a StorageInterface, addressing artifacts via kestra:// URIs that map onto a local storage backend. This is a classic CWE-22 Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') flaw rooted in inconsistent canonicalization: the parentTraversalGuard sanitizer inspects URI.toString() (the still-encoded form) while the downstream consumer calls URI.getPath() (the decoded form), creating a parser-differential. Because the decoded path containing '..' segments is passed to Paths.get(...) without normalization, the operating system resolves the traversal at open(2) time, escaping the intended storage root. The single affected codebase is cpe:2.3:a:kestra-io:kestra, with no platform restriction since the bug is in Java URI handling.
Know when Kestra gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
Network API reachable (AV:N) with simple encoded-traversal payload (AC:L), requires a low-privilege authenticated execution account (PR:L), no interaction; reads host/cross-tenant files beyond the storage authority (S:C, C:H) with no integrity or availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Kestra is an open-source, event-driven orchestration platform. Prior to 1.0.43 and 1.3.19, several Kestra API endpoints accept a kestra:// URI from the client and pass it through StorageInterface.parentTraversalGuard before reading the underlying file from the local storage backend. The guard only inspects the literal URI.toString(), so a URL-encoded .. written as %2E%2E slips through. The downstream code then calls URI.getPath(), which decodes %2E%2E back to .., and the resulting path is handed to Paths.get(...) without normalization. The OS resolves the .. segments at open(2) time, so an authenticated user with a single execution can read any file the Kestra process has access to on the host filesystem (/etc/passwd, mounted secrets, other tenants' execution outputs, etc.). This vulnerability is fixed in 1.0.43 and 1.3.19.
Executive ViewAI
Kestra orchestration platform (versions prior to 1.0.43 and 1.3.19) allows authenticated users with execution privileges to read arbitrary files from the server, including system credentials, mounted secrets, and other tenants' execution data-potentially exposing sensitive credentials and violating data isolation guardrails. This vulnerability enables insider threats and credential compromise that could propagate to downstream systems. Organizations running affected versions must immediately apply security controls and monitor for exploitation.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) restrict execution-privilege access to only trusted, audited users; (2) implement OS-level filesystem access controls limiting Kestra process to minimal required permissions; (3) enforce network segmentation and firewall rules to isolate Kestra from sensitive infrastructure; (4) rotate credentials and secrets that may be accessible through Kestra; (5) enable comprehensive audit logging for all file access, storage URI requests, and authentication events; (6) implement real-time monitoring and alerting for suspicious file-access patterns within Kestra processes.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to
Unauthenticated remote code execution in Kestra orchestration platform before 1.0.45 and 1.3.21 lets anonymous attackers
Stored cross-site scripting in Kestra's custom Markdown renderer (versions before 1.3.24) allows any authenticated user
Kestra versions 1.1.10 and earlier allow authenticated users to perform cross-site scripting (XSS) attacks through the e
SQL injection in Kestra orchestration platform's flow search endpoint (GET /api/v1/main/flows/search) enables remote cod
Offline administrator password recovery in Kestra OSS (versions prior to 1.3.24) stems from its BasicAuth component stor
Authenticated path traversal in Kestra's local internal-storage backend (versions prior to 1.0.45 and 1.3.23) lets any l
Cross-site scripting in Kestra orchestration platform versions up to 1.3.3 enables authenticated flow authors to inject
Path traversal in Kestra's `inputFiles` task mechanism allows remote attackers to write arbitrary files to the worker fi
Unauthorized file read in Kestra's execution preview API allows any authenticated tenant user to access output files fro
EUVD-2026-39921
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB