Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain tenant-level cluster access
-
DeliveryPre-create sibling directory matching safe-dir string prefix on shared volume
-
ExploitSubmit crafted filename to builder Clean or fetcher Fetch/Upload handler
-
Executionstrings.HasPrefix lexical check passes directory traversal
-
ImpactRead or write files in unintended sibling directory
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path traversal prevention
|
| Exploitation Conditions | Exploitation requires local access to the Kubernetes cluster (AV:L) with at least low-privilege tenant credentials (PR:L). The high attack complexity (AC:H) reflects two specific prerequisites: first, the attacker must be able to pre-create or otherwise control a sibling directory on the shared volume whose name begins with the exact string prefix of the fetcher or builder's configured safe directory path; second, the attacker must be able to submit crafted filename values to the builder's Handler or Clean endpoint, or the fetcher's Fetch, Upload, or SpecializeHandler endpoint. Exploitation is limited to the confidentiality and integrity of files accessible within the shared volume scope - it does not grant code execution or cluster-wide privilege escalation. Deployments where tenant workloads are fully isolated from the shared builder/fetcher volume, or where tenants cannot create arbitrary directories on that volume, are not exploitable in practice. |
| Impact | The CVSS 3.1 base score of 3.6 (Low) accurately reflects limited real-world risk. The attack vector is local (AV:L), attack complexity is high (AC:H), and privileges required are low (PR:L), meaning an attacker must already have tenant-level access within the same Kubernetes cluster and must also be able to pre-create or influence a sibling directory on the shared volume whose name begins with the safe directory's prefix. Scope is unchanged (S:U), and confidentiality and integrity impacts are both Low (C:L/I:L/A:N). No EPSS score was provided in the intelligence data, so probabilistic exploitation likelihood cannot be quantified. The vulnerability is not listed in CISA KEV and no public proof-of-concept has been identified, reinforcing the low-priority classification. The high attack complexity signal is consistent with the description's requirement for pre-condition control over a specific shared volume path. This is a genuine but narrowly scoped issue: multi-tenant Fission deployments where tenants can influence shared volume layout are the realistic threat model; single-tenant or tightly controlled environments face negligible risk. |
| Exploit ScenarioDerived | A malicious tenant on a shared Fission deployment creates a directory named /fission-packages-evil (sharing the /fission-packages prefix with the legitimate safe directory) on the shared volume, then submits a build or fetch request with a crafted SrcPkgFilename such as ../fission-packages-evil/payload. The legacy SanitizeFilePath call resolves and accepts this path because strings.HasPrefix passes, allowing the builder's Clean handler or the fetcher's Fetch handler to read from or write to the attacker-controlled sibling directory outside the intended safe boundary. No public proof-of-concept code has been identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 10, 2026
Path traversal in Fission's SanitizeFilePath function (pkg/utils/utils.go) allows a low-privileged tenant to read or write files outside an intended safe directory on a shared Kubernetes volume. Versions prior to 1.25.0 validated directory confinement using strings.HasPrefix, which performs a purely lexical string comparison: a sibling path such as /packages-extra/evil incorrectly passes a check for the safe directory /packages because it satisfies the string prefix condition without a directory-separator boundary. The builder's Clean handler and the fetcher's Fetch and Upload handlers were all affected. No public exploit has been identified at time of analysis and the vulnerability is not listed in CISA KEV.
RemediationAI
Vendor-released patch: v1.25.0. Upgrade Fission to version 1.25.0 or later, available at https://github.com/fission/fission/releases/tag/v1.25.0. The fix eliminates the vulnerable SanitizeFilePath helper entirely, replacing it with os.OpenRoot-based wrappers (RootJoin, RootStat, RootWriteFile, RootMkdirAll, RootRename) that use Linux's openat-family syscalls to structurally confine all path operations. For deployments that cannot immediately upgrade, a compensating control is to enforce strict Kubernetes RBAC and admission policies that prevent tenants from creating arbitrary directories or PersistentVolumeClaims on shared volumes used by the builder and fetcher - this directly removes the attacker's prerequisite of controlling a sibling directory. Note that this workaround requires careful policy scoping and does not fix the underlying code defect. Full remediation details are in PRs #3445 and #3446 at https://github.com/fission/fission/pull/3445 and https://github.com/fission/fission/pull/3446.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in go, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Fission is a Kubernetes-native serverless framework (CPE: cpe:2.3:a:fission:fission:*:*:*:*:*:*:*:*) that uses shared volumes between its builder and fetcher components to stage function packages. The root cause is CWE-41 (Improper Resolution of Path Equivalence): the retired SanitizeFilePath helper called Go's strings.HasPrefix(path, safedir) to enforce directory confinement, but this is a string-level check that does not honor filesystem path semantics. Because strings.HasPrefix does not require the matched prefix to end at a path separator, any sibling directory whose name shares the safe directory's string prefix bypasses the check entirely. The fix, introduced in PRs #3445 and #3446, replaces all call sites with a family of os.OpenRoot-based helpers (RootJoin, RootStat, RootWriteFile, RootMkdirAll, RootRename) that confine every filesystem operation to an explicitly opened directory file descriptor, making escape structurally impossible rather than textually validated.
Know when Fission 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:L/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N
Primary rating from NVD · only source for this CVE.
CVSS VectorNVD
Lifecycle Timeline
1DescriptionNVD
Fission is an open-source, Kubernetes-native serverless framework that simplifies the deployment of functions and applications on Kubernetes. Prior to version 1.25.0, SanitizeFilePath in pkg/utils/utils.go validated that a path stayed under a safe directory by calling strings.HasPrefix(path, safedir). This is a lexical check, not a directory boundary check: /packages-extra/evil starts with /packages, so it passed. The function did not enforce a path-separator boundary, so any sibling directory whose name began with the safe-directory string was accepted. Callers included the builder's Clean handler (pkg/builder/builder.go:208) and the fetcher's Fetch / Upload handlers (pkg/fetcher/fetcher.go). A tenant who could pre-create or control a sibling directory under the fetcher / builder's shared volume could induce a write or read outside the intended safe directory. This issue has been patched in version 1.25.0.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Privilege escalation in Fission prior to version 1.24.0 allows a tenant holding environments.fission.io create/update RB
Privilege escalation in Fission (Kubernetes-native serverless framework) prior to version 1.24.0 allows a tenant with Fu
Privilege escalation in Fission (Kubernetes-native serverless framework) prior to version 1.24.0 allows a tenant with En
Privilege escalation in Fission prior to 1.24.0 allows an authenticated user with permission to create or modify Environ
Privilege escalation in Fission (Kubernetes-native serverless framework) prior to version 1.25.0 allows a tenant with pe
Cross-namespace access control bypass in Fission (Kubernetes-native serverless framework) prior to 1.24.0 allows an auth
Path traversal in Fission Kubernetes serverless framework prior to version 1.25.0 allows authenticated tenants to write
Cross-namespace access control bypass in Fission prior to 1.24.0 allows an authenticated tenant to reference Package obj
Cross-namespace information disclosure in Fission prior to 1.24.0 allows a low-privilege developer with namespace-scoped
Cross-namespace package reference flaw in Fission prior to version 1.24.0 allows an authenticated tenant to point a Pack
Kubernetes service account token exposure in Fission serverless framework prior to v1.24.0 allows authenticated high-pri
Input validation bypass in Fission (Kubernetes-native serverless framework) prior to version 1.25.0 allows authenticated
EUVD-2026-36072
GHSA-r5jh-q2mw-gcx4
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB