Fission StorageSvc /v1/archive endpoint exposes unauthenticated CRUD over all function archives
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.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Fission StorageSvc's /v1/archive CRUD endpoints have no authentication, allowing any cluster workload to access all function archives.
Vulnerability
Overview
The Fission serverless framework's storagesvc component registers handlers for /v1/archive (GET, POST, DELETE) and /v1/archives (list) directly on its HTTP router without any authentication or authorization middleware [1][2]. The root cause lies in pkg/storagesvc/storagesvc.go, where handlers are mounted without an HMAC verifier or any identity check [2]. NetworkPolicy was the only intended defense, but no default policy was shipped for storagesvc, leaving the endpoint reachable by any pod in the cluster [2].
Exploitation and
Attack Surface
Any workload that can reach the storagesvc ClusterIP service — including compromised function pods, tenants in multi-tenant deployments, or any pod without egress restrictions — can interact with all archive endpoints [2]. No authentication is required; the attacker simply sends HTTP requests to the internal service [1]. The attack surface is particularly broad because Fission does not enforce NetworkPolicies by default [2].
Impact
An unauthenticated attacker can enumerate all function deployment archive IDs, download any function's archive (exposing source code and embedded secrets), delete archives (causing function specialization failures), or upload arbitrary archives that subsequent functions would fetch and execute [2]. In multi-tenant deployments, this completely breaks tenant isolation for function code [2].
Mitigation
Status
Fission fixed this vulnerability in release v1.23.0 [1][3]. The fix wraps the /v1/archive routes with an application-layer HMAC verifier using a shared cluster master secret, requiring callers to sign requests [1][3]. Administrators running versions ≤1.22.0 should upgrade immediately; if upgrade is not possible, deploying a custom NetworkPolicy to restrict access to storagesvc can serve as a partial workaround [2][4].
- Add HMAC application-layer auth to StorageSvc /v1/archive by sanketsudake · Pull Request #3368 · fission/fission
- CVE-2026-46612 - GitHub Advisory Database
- Release v1.23.0 · fission/fission
- Add per-service NetworkPolicies covering every Fission listener by sanketsudake · Pull Request #3365 · fission/fission
AI Insight generated on May 21, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected products
2Patches
0No patches discovered yet.
Vulnerability mechanics
AI mechanics synthesis has not run for this CVE yet.
References
5News mentions
0No linked articles in our index yet.