{"id":"CVE-2026-50568","state":"PUBLISHED","title":"Fission: SanitizeFilePath lexical HasPrefix bypass permits sibling-directory escape","description":"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.","publishedAt":"2026-06-10T17:31:49.917Z","updatedAt":"2026-06-11T13:59:45.267Z","severity":{"score":3.6,"label":"Low","version":"3.1","vector":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N","source":"GitHub_M"},"assigner":"GitHub_M","products":["fission fission"],"affected":[{"vendor":"fission","product":"fission","versions":[{"version":"< 1.25.0","status":"affected"}]}],"references":["https://github.com/fission/fission/security/advisories/GHSA-r5jh-q2mw-gcx4","https://github.com/fission/fission/pull/3445","https://github.com/fission/fission/pull/3446","https://github.com/fission/fission/releases/tag/v1.25.0"],"weaknesses":["CWE-41"],"ingestedAt":"2026-10-29T20:12:16.098Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/50xxx/CVE-2026-50568.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-50568","state":"PUBLISHED","datePublished":"2026-06-10T17:31:49.917Z","dateUpdated":"2026-06-11T13:59:45.267Z","assignerShortName":"GitHub_M","assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateReserved":"2026-06-04T21:34:34.427Z"},"containers":{"cna":{"title":"Fission: SanitizeFilePath lexical HasPrefix bypass permits sibling-directory escape","descriptions":[{"lang":"en","value":"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."}],"affected":[{"vendor":"fission","product":"fission","versions":[{"version":"< 1.25.0","status":"affected"}]}],"references":[{"url":"https://github.com/fission/fission/security/advisories/GHSA-r5jh-q2mw-gcx4","name":"https://github.com/fission/fission/security/advisories/GHSA-r5jh-q2mw-gcx4","tags":["x_refsource_CONFIRM"]},{"url":"https://github.com/fission/fission/pull/3445","name":"https://github.com/fission/fission/pull/3445","tags":["x_refsource_MISC"]},{"url":"https://github.com/fission/fission/pull/3446","name":"https://github.com/fission/fission/pull/3446","tags":["x_refsource_MISC"]},{"url":"https://github.com/fission/fission/releases/tag/v1.25.0","name":"https://github.com/fission/fission/releases/tag/v1.25.0","tags":["x_refsource_MISC"]}],"metrics":[{"cvssV3_1":{"attackComplexity":"HIGH","attackVector":"LOCAL","availabilityImpact":"NONE","baseScore":3.6,"baseSeverity":"LOW","confidentialityImpact":"LOW","integrityImpact":"LOW","privilegesRequired":"LOW","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-41","lang":"en","description":"CWE-41: Improper Resolution of Path Equivalence","type":"CWE"}]}],"providerMetadata":{"shortName":"GitHub_M","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateUpdated":"2026-06-10T17:31:49.917Z"},"source":{"advisory":"GHSA-r5jh-q2mw-gcx4","discovery":"UNKNOWN"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-06-11T13:59:24.283843Z","id":"CVE-2026-50568","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-06-11T13:59:45.267Z"}}]}}}