CVE-2026-50564: Github.com/fission/fission Fission Environment CRD Podspec Passthrough Vulnerability

CRITICAL
Advisory Identifier: GHSA-gx55-f84r-v3r7
CVSS 9.9
CWE-284 CWE-693 CWE-269
Published
Advisory Summary

CVE-2026-50564 is a CRITICAL (CVSS 9.9) fission environment crd podspec passthrough vulnerability (CWE-284: Improper Access Control) affecting Github.com/fission/fission libraries in the Go ecosystem. The issue involves fission environment crd podspec passthrough enables hostpid/hostnetwork/privileged pods, node escape. Remediation is available by upgrading affected packages to version 1.24.0.

CVE-2026-50564 at a Glance

CVE Identifier CVE-2026-50564
GHSA Identifier GHSA-gx55-f84r-v3r7
Severity CRITICAL
CVSS v3.1 Base Score 9.9
CWE Classification CWE-284: Improper Access Control
Affected Product Github.com/fission/fission
Package Ecosystem Go
Published Date
Last Updated

Security Impact

CVSS: 9.9

The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H).

Attack Vector Network (AV:N)
Attack Complexity Low (AC:L)
Privileges Required Low (PR:L)
User Interaction None (UI:N)
Scope Changed (S:C)
Confidentiality High (C:H)
Integrity High (I:H)
Availability High (A:H)

How to Fix CVE-2026-50564

To remediate this vulnerability, upgrade all affected Github.com/fission/fission dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

github.com/fission/fission fixed: 1.24.0
Upgrade github.com/fission/fission to 1.24.0
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

inspect dependencies for github.com/fission/fission

How to Check if You Are Affected

To determine whether your application is affected by CVE-2026-50564, inspect your project dependencies for Github.com/fission/fission:

inspect dependencies for github.com/fission/fission

Analyze the terminal output to locate any version of Github.com/fission/fission in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 1.24.0), your application is affected.

Note: Verify declared build manifests and deployed runtime container environments.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-284: Improper Access Control, where the product does not restrict or incorrectly restricts access to a resource from an unauthorized actor. In Github.com/fission/fission, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

### Summary Fission's `Environment` CRD exposes `spec.runtime.podSpec` and `spec.builder.podSpec`, which are merged into the Kubernetes pod specs for runtime and builder pods. The merge logic propagated `hostNetwork`, `hostPID`, `hostIPC`, container `privileged`, and `serviceAccountName` from the user-supplied podspec with no filtering, and `Environment.Validate` performed no security-relevant checks on these fields. ### Details A namespace user with `create`/`update` on `environments.fission.io` could produce privileged, host-network, hostPID pods in the Fission function or builder namespace. Because the Helm chart created the `fission-function` and `fission-builder` namespaces with no `pod-security.kubernetes.io/enforce` labels, Kubernetes Pod Security Admission did not catch the escape either. From a host-network privileged pod with hostPID, the attacker could `nsenter` into the host, read cloud-metadata credentials, access the container-runtime socket, pivot to other namespaces, and fully compromise the node. ### Impact `environments.fission.io` create/update RBAC is escalated to node compromise — host filesystem and network access on the scheduling node, and from there potential cluster-wide takeover. ### Fix Fixed in [#3391](https://github.com/fission/fission/pull/3391) and released in [v1.24.0](https://github.com/fission/fission/releases/tag/v1.24.0). Denylist at admission (the primary defence) plus belt-and-braces at the merge layer. **Admission denylist** (`pkg/apis/core/v1/podspec_safety.go::ValidatePodSpecSafety`), called from `Environment.Validate` for both `Runtime.PodSpec` and `Builder.PodSpec`: - pod-level: `HostNetwork`, `HostPID`, `HostIPC`, `ServiceAccountName` / `DeprecatedServiceAccount` override, hostPath volumes; - per-container: `SecurityContext.Privileged=true`, `SecurityContext.AllowPrivilegeEscalation=true`, dangerous capabilities (`SYS_ADMIN`, `NET_ADMIN`, `SYS_PTRACE`, `SYS_MODULE`, `DAC_READ_SEARCH`, `DAC_OVERRIDE`). **Update-bypass closed:** the `Environment` validating-webhook marker is extended from `verbs=create` to `verbs=create;update` (chart and envtest manifests aligned). **Merge-layer belt-and-braces** (`pkg/executor/util/merge.go`): even if admission is bypassed (`failurePolicy=Ignore` or stale pre-webhook objects), the denylisted pod-level fields are stripped and per-container dangerous settings are sanitized before the merge (with `SecurityContext` deep-copied first so cached informer objects are not mutated). Legitimate operator hardening via the chart's pod-level `securityContext` (fsGroup, runAsNonRoot, runAsUser) still flows through. ### Behavioural change Environments that explicitly set any denylisted field are now rejected at admission. There is no legitimate Fission use case — these primitives exist for cluster operators, not Environment authors. This is the same root cause and fix as GHSA-wmgg-3p4h-48x7.

CVE-2026-50564 Affected Github.com/fission/fission Versions

1 component(s)
Fixed Versions:
1.24.0
Product / Package Ecosystem Affected Versions Fixed Version
github.com/fission/fission
Go
< 1.24.0
1.24.0

References

Frequently Asked Questions

What is CVE-2026-50564?
CVE-2026-50564 is a security vulnerability in Github.com/fission/fission involving Fission Environment CRD podspec passthrough enables hostPID/hostNetwork/privileged pods, node escape under CWE-284: Improper Access Control.
Which Github.com/fission/fission versions are affected?
Affected versions include releases prior to 1.24.0 across affected packages: github.com/fission/fission.
What version fixes CVE-2026-50564?
Upgrading to 1.24.0 (or the latest patched release for your respective branch) resolves the vulnerability.
Is github.com/fission/fission affected?
Yes, github.com/fission/fission is affected in releases prior to 1.24.0. Upgrade your dependency to 1.24.0 or later.
What is the CVSS score of CVE-2026-50564?
CVE-2026-50564 has a CVSS v3.1 base score of 9.9 (CRITICAL) with vector string CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H.
What CWE is associated with CVE-2026-50564?
CVE-2026-50564 is classified under CWE-284: Improper Access Control (The product does not restrict or incorrectly restricts access to a resource from an unauthorized actor.).
How can I check Go dependencies for CVE-2026-50564?
Run the dependency tree command: 'inspect dependencies for github.com/fission/fission'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-gx55-f84r-v3r7",
  "modified" : "2026-06-30T18:19:32Z",
  "published" : "2026-06-30T18:19:32Z",
  "aliases" : [ "CVE-2026-50564" ],
  "summary" : "Fission Environment CRD podspec passthrough enables hostPID/hostNetwork/privileged pods, node escape",
  "details" : "### Summary\n\nFission's `Environment` CRD exposes `spec.runtime.podSpec` and `spec.builder.podSpec`, which are merged into the Kubernetes pod specs for runtime and builder pods. The merge logic propagated `hostNetwork`, `hostPID`, `hostIPC`, container\n `privileged`, and `serviceAccountName` from the user-supplied podspec with no filtering, and `Environment.Validate` performed no security-relevant checks on these fields.\n\n### Details\n\nA namespace user with `create`/`update` on `environments.fission.io` could produce privileged, host-network, hostPID pods in the Fission function or builder namespace. Because the Helm chart created the `fission-function` and\n`fission-builder` namespaces with no `pod-security.kubernetes.io/enforce` labels, Kubernetes Pod Security Admission did not catch the escape either.\n\nFrom a host-network privileged pod with hostPID, the attacker could `nsenter` into the host, read cloud-metadata credentials, access the container-runtime socket, pivot to other namespaces, and fully compromise the node.\n\n### Impact\n\n`environments.fission.io` create/update RBAC is escalated to node compromise — host filesystem and network access on the scheduling node, and from there potential cluster-wide takeover.\n\n### Fix\n\nFixed in [#3391](https://github.com/fission/fission/pull/3391) and released in [v1.24.0](https://github.com/fission/fission/releases/tag/v1.24.0). Denylist at admission (the primary defence) plus belt-and-braces at the merge layer.\n\n**Admission denylist** (`pkg/apis/core/v1/podspec_safety.go::ValidatePodSpecSafety`), called from `Environment.Validate` for both `Runtime.PodSpec` and `Builder.PodSpec`:\n\n- pod-level: `HostNetwork`, `HostPID`, `HostIPC`, `ServiceAccountName` / `DeprecatedServiceAccount` override, hostPath volumes;\n- per-container: `SecurityContext.Privileged=true`, `SecurityContext.AllowPrivilegeEscalation=true`, dangerous capabilities (`SYS_ADMIN`, `NET_ADMIN`, `SYS_PTRACE`, `SYS_MODULE`, `DAC_READ_SEARCH`, `DAC_OVERRIDE`).\n\n**Update-bypass closed:** the `Environment` validating-webhook marker is extended from `verbs=create` to `verbs=create;update` (chart and envtest manifests aligned).\n\n**Merge-layer belt-and-braces** (`pkg/executor/util/merge.go`): even if admission is bypassed (`failurePolicy=Ignore` or stale pre-webhook objects), the denylisted pod-level fields are stripped and per-container dangerous settings are\nsanitized before the merge (with `SecurityContext` deep-copied first so cached informer objects are not mutated). Legitimate operator hardening via the chart's pod-level `securityContext` (fsGroup, runAsNonRoot, runAsUser) still flows\nthrough.\n\n### Behavioural change\n\nEnvironments that explicitly set any denylisted field are now rejected at admission. There is no legitimate Fission use case — these primitives exist for cluster operators, not Environment authors.\n\nThis is the same root cause and fix as GHSA-wmgg-3p4h-48x7.",
  "severity" : [ {
    "type" : "CVSS_V3",
    "score" : "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "Go",
      "name" : "github.com/fission/fission"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "1.24.0"
      } ]
    } ],
    "database_specific" : {
      "last_known_affected_version_range" : "<= 1.23.0"
    }
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/fission/fission/security/advisories/GHSA-gx55-f84r-v3r7"
  }, {
    "type" : "ADVISORY",
    "url" : "https://nvd.nist.gov/vuln/detail/CVE-2026-50564"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/fission/fission/pull/3391"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/fission/fission/commit/e484df8460bb4e8026e24210120602aa7f181f64"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/fission/fission"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/fission/fission/releases/tag/v1.24.0"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-269", "CWE-284", "CWE-693" ],
    "severity" : "CRITICAL",
    "github_reviewed" : true,
    "github_reviewed_at" : "2026-06-30T18:19:32Z",
    "nvd_published_at" : "2026-06-10T18:17:12Z"
  }
}