{"id":"CVE-2026-45807","summary":"Kestra: Path traversal via URL-encoded \"%2E%2E\" in execution and namespace file endpoints allows arbitrary file read","details":"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.","aliases":["GHSA-3529-p4wf-xp79"],"modified":"2026-07-15T01:49:08.727409120Z","published":"2026-06-26T20:57:13.891Z","database_specific":{"cwe_ids":["CWE-22"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/45xxx/CVE-2026-45807.json","cna_assigner":"GitHub_M"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/45xxx/CVE-2026-45807.json"},{"type":"ADVISORY","url":"https://github.com/kestra-io/kestra/security/advisories/GHSA-3529-p4wf-xp79"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-45807"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/kestra-io/kestra","events":[{"introduced":"0"},{"fixed":"27c0064c05c37f604b97f667dc15f06113785a13"},{"introduced":"1e670b5e7e92f89533ee17d564263578b0d5ec8c"},{"fixed":"82cb2d921d9800179597ec324a5fd9df593b644b"}],"database_specific":{"cpe":"cpe:2.3:a:kestra:kestra:*:*:*:*:*:*:*:*","extracted_events":[{"introduced":"0"},{"fixed":"1.0.43"},{"introduced":"1.1.0"},{"fixed":"1.3.19"}],"source":"CPE_RANGE"}}],"versions":["v1.0.42","v1.3.18","v1.0.41","v1.3.17","v1.0.40","v1.3.16","v1.0.39","v1.3.15","v1.0.38","v1.3.14","v1.3.13","v1.0.37","v1.3.11","v1.0.36","v1.3.9","v1.0.35","v1.3.8","v1.3.7","v1.0.34","v1.3.6","v1.3.5","v1.3.4","v1.0.33","v1.3.3","v1.3.2","v1.0.32","v1.0.31","v1.3.1","v1.0.30","v1.3.0","v1.3.0-rc1","v1.0.29","v1.3.0-rc0","v1.0.28","v1.0.27","v1.0.26","v1.0.25","v1.0.24","v1.0.23","v1.0.22","v1.0.21","v1.0.20","v1.0.19","v1.0.18","v1.0.17","v1.0.16","v1.0.15","v1.0.14","v1.0.13","v1.0.12","v1.0.11","v1.0.10","v1.0.9","v1.0.8","v1.0.7","v1.0.6","v1.0.5","v1.0.4","v1.0.3","v1.0.2","v1.0.1","v1.0.0","v0.0.1234","v0.19.0","v0.9.1","v0.9.0","v0.8.1","v0.8.0","v0.7.1","v0.7.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-45807.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N"}]}