GHSA-chf8-4hv6-8pg6 is a high-severity (CVSS 8.8) Missing Authentication vulnerability in github.com/fission/fission. A fix is available for github.com/fission/fission — see the affected versions and patch details below.
Fission StorageSvc /v1/archive endpoint exposes unauthenticated CRUD over all function archives
Exploitation Status
No confirmed exploitation observed yet
- A successful exploit gives an attacker total control of the affected component, not partial access.
- CISA’s own triage has not observed active exploitation or public proof-of-concept code for this CVE as of its last assessment.
Exploitation and automatability from CISA’s SSVC triage for GHSA-chf8-4hv6-8pg6.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
GHSA-chf8-4hv6-8pg6 by exploitation likelihood (EPSS) against impact (CVSS). Outside the shaded patch-first corner.
Where this sits among everything scored
Of 379,842 CVEs with a current EPSS score, this one falls in the < 10% band (highlighted). Counts from FIRST.org, log-scaled.
Real-World Exposure
github.com/fission/fissionReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Go packages — download data is not available via public APIs for these ecosystems.
Description
Summary
The Fission storagesvc component registers archive CRUD handlers (/v1/archive GET / POST / DELETE and /v1/archives list) directly on its HTTP router without performing any authentication or authorization. Any caller able to reach the storagesvc ClusterIP — including any other workload in the same Kubernetes cluster — could enumerate archive IDs, download archives belonging to other tenants, upload arbitrary archive content, and delete archives.
Affected component
pkg/storagesvc/storagesvc.go— handler registration and per-route handler logic at lines 72-95 (list), 167-199 (download/delete), and 263-270 (route wiring).
Impact
A workload elsewhere in the cluster (e.g. a compromised function pod, a noisy-neighbour tenant in a multi-tenant deployment, or any pod whose egress is not constrained by NetworkPolicy) could:
- Enumerate every function deployment archive in the cluster.
- Download the deployment archive of any function in any namespace, exposing the function's source code and any embedded secrets.
- Delete archives, causing the next function specialization or rebuild to fail.
- Upload arbitrary archives that subsequent function specializations would fetch and execute.
In multi-tenant Fission deployments this completely breaks the tenant boundary for function code.
Root cause
pkg/storagesvc/storagesvc.go mounts the handlers without an authentication middleware. Network-layer controls (NetworkPolicy) were the only line of defence before this fix, and the chart shipped no NetworkPolicy for storagesvc by default, so reachability was open.
Fix
Released in v1.23.0:
- PR #3368 (commit
2455fc0c) wraps thestoragesvcarchive routes with the application-layer HMAC verifier frompkg/auth/hmacusing theServiceStoragesvcderived key. Callers (executor, fetcher, builder, CLI) sign their requests using a shared cluster master secret derived per-service via HKDF. Mismatched signatures are rejected with401. - Defence in depth: PR #3365 added a
NetworkPolicyforstoragesvcso only the executor/fetcher/builder pods can reach it network-layer (independent of authentication).
Mitigation (until upgrade)
- Enable the Helm chart's per-service NetworkPolicy (set
networkPolicy.enabled=true). - Restrict
storagesvcegress/ingress to the executor, builder, and fetcher pods only. - Avoid running untrusted workloads in the cluster that hosts Fission.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐹Go | github.com/fission/fission | all versions | 1.23.0go get github.com/fission/fission@v1.23.0 |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for github.com/fission/fission, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update github.com/fission/fission to 1.23.0 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-chf8-4hv6-8pg6 is resolved across your whole dependency graph.
Workarounds
Put an independent control in front of the weakness: restrict the affected endpoint or interface to trusted networks, require an additional authentication factor or proxy-level check, and invalidate existing sessions and credentials in case the flaw has already been used.
Frequently Asked Questions
Is GHSA-chf8-4hv6-8pg6 in your dependencies?
Find it across Go, including transitive dependencies.