Fission CVE-2026-46612
HIGHCVSS VectorNVD
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Lifecycle Timeline
2DescriptionNVD
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.
AnalysisAI
Unauthenticated archive CRUD in Fission's storagesvc (≤ v1.22.0) lets any in-cluster workload list, download, replace, or delete function deployment archives across all tenants by hitting the ClusterIP-exposed /v1/archive and /v1/archives endpoints. Because uploaded archives are later fetched and executed by function specialization, the flaw escalates from a tenant data-exposure issue to in-cluster code execution. …
Sign in for full analysis, threat intelligence, and remediation guidance.
RemediationAI
24 hours: Identify all Fission v1.22.0 and earlier instances in your environment. Audit network exposure (public vs. …
Sign in for detailed remediation steps.
Share
External POC / Exploit Code
Leaving vuln.today
GHSA-chf8-4hv6-8pg6