GitHub Advisoryadvisory · Go
GHSA-q6vm-xqc9-v3ff Fission: Zip Slip in pkg/utils/zip.go:Unarchive allows fetcher to write outside the destination directory
HIGH
Official page ↗
- Aliases
- CVE-2026-50567
- Ecosystem
- Go
- Packages
- github.com/fission/fission
- Severity
- High
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:N
- Weaknesses
- CWE-22
- Reviewed
- 2026-07-28
Affected packages
• Go github.com/fission/fission: < 1.25.0 → fixed in 1.25.0
Description
`Unarchive` in `pkg/utils/zip.go` joined each archive entry name with the destination directory via `filepath.Join` and wrote the result without checking whether the resolved path stayed under the destination. A zip entry named
`../../tmp/evil` therefore landed at `/tmp/evil`. An attacker who could control a `Package.Spec.Source.URL` or `Deployment.URL` archive could induce the fetcher (running as the per-environment pod's `fission-fetcher` sidecar) to write
files anywhere that process could reach: into other tenants' `/packages//` directories, into mounted secret/config volumes, or into the fetcher's own binary.
### Affected
• Project: `github.com/fission/fission`
• Versions: all up to and including v1.24.0
• Audited commit: `647c141`
• Component: `pkg/utils/zip.go` (`Unarchive`)
• Configuration: default; triggered when the fetcher downloads and extracts a zip archive
Fix section (paste into the Fix / Patches field)
Fixed in v1.25.0 by:
• PR #3444 (commit `55704aca`) — `Unarchive` now opens an `os.Root` on the destination, validates each
archive entry name (rejects absolute paths and `..` traversal), and refuses symlink entries up front. The `os.Root` confines every `mkdir` / `create` to the destination in the kernel.
Regression coverage: `TestUnarchiveZipSlip` in `pkg/utils/zip_test.go` exercises parent-traversal, absolute-path, and symlink entries.
Related
Alias · CVE (1)
- CVE-2026-50567 Fission is an open-source, Kubernetes-native serverless framework that simplifies the deployment of functions and applications on… vulnerability
Weakness · CWE (1)
- CWE-22 Improper Limitation of a Pathname to a Restricted Directory weakness