Description
Jupyter Enterprise Gateway launches remote Jupyter Notebook kernels across distributed clusters like Apache Spark, Kubernetes, and Docker Swarm. In versions prior to 3.3.0, the server interpolates untrusted environment variables (e.g., KERNEL_XXX) into Kubernetes manifests without YAML-aware escaping, enabling YAML injection attacks. Attackers can inject new fields, overwrite critical fields (e.g., duplicate securityContext keys, where the last one prevails), and inject document boundaries (--- for new documents, ... for end-of-document) to generate multiple resources, potentially creating arbitrary types, such as privileged pods. The Jinja2 template for the Kubernetes manifest contains several kernel_xxx variables, such as kernel_working_dir that are used when rendering the manifest and are all vectors for YAML injection. This issue has been fixed in version 3.3.0.
Published: 2026-07-16
Score: 10 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Jupyter Enterprise Gateway renders Kubernetes manifests from untrusted environment variables without YAML‑aware escaping. In versions prior to 3.3.0, the server interpolates untrusted environment variables such as KERNEL_XXX into Jinja2 templates used to generate the manifests. Attackers can inject new fields, overwrite existing keys, and duplicate critical fields like securityContext, with the last instance taking precedence. They can also add document boundaries (--- and ...), creating multiple YAML resources—including privileged pods and other arbitrary types. All kernel_xxx variables in the template, for example kernel_working_dir, are potential vectors for these injections.

Affected Systems

Jupyter Enterprise Gateway deploys remote Jupyter Notebook kernels across distributed clusters such as Apache Spark, Kubernetes, and Docker Swarm. All releases before 3.3.0 are affected due to the unescaped Jinja2 template rendering.

Risk and Exploitability

The CVSS score of 10 marks this as a critical flaw, while the EPSS score of < 1% indicates that exploitation is currently rare. It is not listed in the CISA KEV catalog. The likely attack vector involves an attacker supplying untrusted environment variables through the gateway’s exposed interfaces or configuration mechanisms, causing the server to inject malicious content into the manifest that the Kubernetes API then processes. Successful exploitation can create privileged pods or otherwise manipulate cluster resources.

Generated by OpenCVE AI on July 31, 2026 at 01:10 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to Jupyter Enterprise Gateway version 3.3.0 or later, where the template rendering flaw has been fixed.
  • If an immediate upgrade is not feasible, restrict the use of environment variables that are interpolated into the Kubernetes template to trusted sources only or sanitize them before rendering.
  • Strengthen Kubernetes RBAC policies to limit pod creation permissions and enforce least privilege so that any injected manifests cannot run privileged containers.

Generated by OpenCVE AI on July 31, 2026 at 01:10 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-cfw7-6c5v-2wjq Jupyter Enterprise Gateway: Kubernetes Manifest Injection in Jinja2 Template Rendering
History

Thu, 23 Jul 2026 22:45:00 +0000

Type Values Removed Values Added
First Time appeared Jupyter-server
Jupyter-server enterprise Gateway
Vendors & Products Jupyter-server
Jupyter-server enterprise Gateway

Fri, 17 Jul 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Thu, 16 Jul 2026 22:30:00 +0000

Type Values Removed Values Added
Description Jupyter Enterprise Gateway launches remote Jupyter Notebook kernels across distributed clusters like Apache Spark, Kubernetes, and Docker Swarm. In versions prior to 3.3.0, the server interpolates untrusted environment variables (e.g., KERNEL_XXX) into Kubernetes manifests without YAML-aware escaping, enabling YAML injection attacks. Attackers can inject new fields, overwrite critical fields (e.g., duplicate securityContext keys, where the last one prevails), and inject document boundaries (--- for new documents, ... for end-of-document) to generate multiple resources, potentially creating arbitrary types, such as privileged pods. The Jinja2 template for the Kubernetes manifest contains several kernel_xxx variables, such as kernel_working_dir that are used when rendering the manifest and are all vectors for YAML injection. This issue has been fixed in version 3.3.0.
Title Jupyter Enterprise Gateway Has Kubernetes Manifest Injection via Jinja2 Template Rendering
Weaknesses CWE-74
References
Metrics cvssV4_0

{'score': 10, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H'}


Subscriptions

Jupyter-server Enterprise Gateway
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-17T15:04:51.068Z

Reserved: 2026-05-05T14:39:34.924Z

Link: CVE-2026-44182

cve-icon Vulnrichment

Updated: 2026-07-17T15:04:17.114Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-31T01:15:18Z

Weaknesses
  • CWE-74

    Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection')