CVE-2026-50570 Overview
CVE-2026-50570 affects Fission, an open-source Kubernetes-native serverless framework for deploying functions on Kubernetes. The vulnerability exists in Fission's PodSpec safety validation logic for tenant-facing Environment and Function Custom Resource Definitions (CRDs). The ValidatePodSpecSafety and ValidateContainerSafety admission webhook, along with the sanitizeContainerSecurityContext executor merge layer, implemented capability checks as a fixed denylist of only six Linux capabilities. The denylist omitted CAP_SYS_TIME and other privileged capabilities. A tenant with permission to create Function or Environment CRDs can request securityContext.capabilities.add: ["SYS_TIME"] and run attacker-controlled code with elevated capabilities in the resulting container. The issue is patched in version 1.25.0.
Critical Impact
Authenticated tenants can bypass Fission's capability denylist to obtain CAP_SYS_TIME inside function containers, allowing manipulation of the node clock and downstream tampering with time-dependent security controls.
Affected Products
- Fission serverless framework versions prior to 1.25.0
- Kubernetes clusters running multi-tenant Fission deployments
- Function and Environment CRDs governed by Fission admission webhooks
Discovery Timeline
- 2026-06-10 - CVE-2026-50570 published to NVD
- 2026-06-10 - Last updated in NVD database
Technical Details for CVE-2026-50570
Vulnerability Analysis
The flaw is an improper privilege management issue tracked under [CWE-269]. Fission enforces tenant isolation through admission webhooks that validate PodSpec content submitted via Function and Environment CRDs. The validation logic checks securityContext.capabilities.add against a hardcoded denylist containing SYS_ADMIN, NET_ADMIN, SYS_PTRACE, SYS_MODULE, DAC_READ_SEARCH, and DAC_OVERRIDE. Any capability not in this list passes validation and reaches the executor merge layer unchanged. CAP_SYS_TIME grants the ability to modify the system clock, which on most Kubernetes runtimes is shared with the host kernel. An attacker can use this capability to shift node time, disrupt certificate validity windows, invalidate audit log timestamps, and interfere with time-based token issuance such as Kerberos or JWT expiry checks.
Root Cause
The root cause is the use of an allowlist-style security control implemented as a denylist. The sanitizeContainerSecurityContext function only strips capabilities present in the predefined deny set. Any new or omitted Linux capability passes through to the runtime container without inspection. This violates the principle of least privilege and fails to track the full set of capabilities Kubernetes exposes through the container runtime.
Attack Vector
Exploitation requires tenant-level permission to submit Function or Environment CRDs to the Fission control plane. The attacker crafts a CRD that includes securityContext.capabilities.add: ["SYS_TIME"] in the pod template. The admission webhook accepts the request because SYS_TIME is not in the denylist. The executor merges the spec, and the runtime container starts with CAP_SYS_TIME. Attacker-controlled function code then executes clock_settime or settimeofday syscalls to alter system time. See the GitHub Security Advisory GHSA-qf5v-m7p4-95rp for additional technical detail.
Detection Methods for CVE-2026-50570
Indicators of Compromise
- Function or Environment CRDs containing securityContext.capabilities.add entries other than the documented baseline.
- Pods in Fission-managed namespaces with CAP_SYS_TIME or other non-default capabilities listed in their effective container spec.
- Unexpected node-level clock drift or NTP synchronization errors on worker nodes hosting Fission functions.
- Audit log entries showing fission.io/v1 API submissions modifying PodSpec.containers[].securityContext.
Detection Strategies
- Inspect the Kubernetes API audit log for create and update operations on Function and Environment resources that include capabilities.add fields.
- Run kubectl get pods -o json across Fission namespaces and parse securityContext.capabilities to find capabilities outside the approved set.
- Deploy a Kubernetes admission policy engine such as Kyverno or OPA Gatekeeper to flag any add-capability request outside an explicit allowlist.
Monitoring Recommendations
- Monitor host time synchronization metrics and alert on unexpected clock_settime syscalls from container workloads.
- Forward Kubernetes audit logs to a SIEM and create rules that match capability modifications in Fission CRDs.
- Track Fission version inventory across clusters and alert when nodes run versions earlier than 1.25.0.
How to Mitigate CVE-2026-50570
Immediate Actions Required
- Upgrade Fission to version 1.25.0 or later in all clusters, prioritizing multi-tenant environments.
- Audit existing Function and Environment CRDs for non-default capabilities.add entries and remove unauthorized capabilities.
- Restrict RBAC permissions on Function and Environment CRDs so only trusted service accounts can submit pod templates.
Patch Information
The fix is included in Fission v1.25.0. The patch replaces the denylist-based capability check with stricter validation. Review the GitHub Pull Request and the GitHub Release v1.25.0 for full change details.
Workarounds
- Apply a cluster-wide Pod Security Admission policy at the restricted level on Fission namespaces to block all non-default capability additions.
- Deploy a Kyverno or OPA Gatekeeper policy that denies any Function or Environment CRD containing securityContext.capabilities.add values outside an explicit allowlist.
- Limit tenant access to the Fission control plane through namespace-scoped RBAC and disable shared cluster-admin tokens for function developers.
# Example Kyverno policy fragment to block non-baseline capability additions
# Apply with: kubectl apply -f restrict-fission-caps.yaml
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: restrict-fission-capabilities
spec:
validationFailureAction: Enforce
rules:
- name: block-capability-add
match:
any:
- resources:
kinds:
- fission.io/v1/Function
- fission.io/v1/Environment
validate:
message: "Adding Linux capabilities is not permitted on Fission CRDs."
pattern:
spec:
=(podspec):
=(containers):
- =(securityContext):
=(capabilities):
X(add): "null"
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

