CVE-2026-46612 Overview
CVE-2026-46612 is a missing authentication vulnerability [CWE-306] in Fission, an open-source Kubernetes-native serverless framework. Versions prior to 1.23.0 expose archive CRUD handlers on the storagesvc component without any authentication or authorization checks. The affected routes include /v1/archive (GET, POST, DELETE) and /v1/archives (list). Any workload that can reach the storagesvc ClusterIP within the Kubernetes cluster can enumerate archive IDs, download archives from other tenants, upload arbitrary content, or delete existing archives. The maintainers patched the issue in version 1.23.0.
Critical Impact
Any in-cluster workload can read, modify, or delete Fission archives belonging to other tenants, breaking confidentiality, integrity, and availability of serverless function artifacts.
Affected Products
- Fission versions prior to 1.23.0
- Fission storagesvc component
- Kubernetes clusters running vulnerable Fission deployments
Discovery Timeline
- 2026-06-10 - CVE-2026-46612 published to NVD
- 2026-06-10 - Last updated in NVD database
Technical Details for CVE-2026-46612
Vulnerability Analysis
The Fission storagesvc component stores function and package archives used by the serverless runtime. The HTTP router registers the archive CRUD endpoints directly without wrapping them in any authentication or authorization middleware. As a result, the service trusts every caller that can reach its ClusterIP address.
The affected handlers expose four operations. GET /v1/archive retrieves an archive by ID. POST /v1/archive uploads new archive content. DELETE /v1/archive removes an archive. GET /v1/archives enumerates archive identifiers across the storage namespace. None of these handlers verify caller identity, tenant ownership, or role membership.
For full technical details, see the GitHub Security Advisory GHSA-chf8-4hv6-8pg6 and the fix in Pull Request #3365.
Root Cause
The root cause is missing authentication on internal HTTP routes [CWE-306]. The storagesvc router binds archive handlers without an auth filter and relies on network reachability as its only access control. In a multi-tenant Kubernetes cluster, ClusterIP services are reachable by every pod in the cluster by default, which makes this implicit trust model insufficient.
Attack Vector
An attacker who controls any pod within the Kubernetes cluster — including a low-privilege tenant workload or a compromised sidecar — can issue HTTP requests to the storagesvc ClusterIP. The attacker lists archive IDs through /v1/archives, downloads each archive through /v1/archive?id=<id>, and extracts source code, secrets, or proprietary function logic. The attacker can also overwrite archives through POST /v1/archive to inject malicious code that executes when functions are invoked, or delete archives to cause denial of service.
// Example exploitation flow (described, not executable)
// 1. From any pod in the cluster, resolve storagesvc.<namespace>.svc.cluster.local
// 2. GET http://storagesvc.<ns>:8000/v1/archives -> list archive IDs
// 3. GET http://storagesvc.<ns>:8000/v1/archive?id=<id> -> download tenant code
// 4. POST http://storagesvc.<ns>:8000/v1/archive -> upload malicious archive
// 5. DELETE http://storagesvc.<ns>:8000/v1/archive?id=<id> -> remove archive
Detection Methods for CVE-2026-46612
Indicators of Compromise
- Unexpected HTTP requests to storagesvc from pods outside the Fission control-plane namespace.
- Archive IDs being listed, downloaded, or deleted by service accounts that do not belong to the Fission controller.
- Unexplained changes to function archive checksums or sizes in the storage backend.
- Function executions returning altered or unexpected output after archive modification.
Detection Strategies
- Enable HTTP access logging on the storagesvc deployment and alert on /v1/archive and /v1/archives requests originating from non-Fission pods.
- Inspect Kubernetes audit logs for pods that resolve or connect to the storagesvc Service from unexpected namespaces.
- Correlate network flow logs against the expected client set, which is normally limited to the Fission executor and controller components.
Monitoring Recommendations
- Capture archive checksum baselines and alert on out-of-band modifications.
- Monitor storagesvc request volume for spikes consistent with enumeration or bulk download.
- Track service account usage within the cluster to identify lateral movement attempts toward Fission components.
How to Mitigate CVE-2026-46612
Immediate Actions Required
- Upgrade Fission to version 1.23.0 or later in every affected cluster.
- Restrict network access to storagesvc using a Kubernetes NetworkPolicy that only allows the Fission control-plane components.
- Audit existing archives for tampering and rotate any secrets that may have been exposed through downloaded archives.
- Review cluster RBAC and tenant isolation to confirm that no untrusted workloads share the namespace with Fission.
Patch Information
The vulnerability is fixed in Fission v1.23.0. The fix adds authentication to the archive CRUD handlers in storagesvc. See Pull Request #3365 and Pull Request #3368 for the implementation details.
Workarounds
- Apply a NetworkPolicy that limits ingress to storagesvc to only the fission-function and fission namespaces and the controller service accounts.
- Place an authenticating reverse proxy in front of storagesvc until the upgrade can be completed.
- Run Fission in a dedicated cluster with no untrusted tenant workloads to reduce exposure until patched.
# Example NetworkPolicy restricting access to storagesvc
kubectl apply -f - <<EOF
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: storagesvc-restrict
namespace: fission
spec:
podSelector:
matchLabels:
svc: storagesvc
policyTypes:
- Ingress
ingress:
- from:
- namespaceSelector:
matchLabels:
name: fission
- podSelector:
matchLabels:
application: fission-controller
- podSelector:
matchLabels:
application: fission-executor
EOF
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


