Jupyter Enterprise Gateway UID and GID Bypass Vulnerability Allowing Root Kernel Execution

Vulnerability

A vulnerability in Jupyter Enterprise Gateway versions 2.0.0rc1 and above prior to 3.3.0 allows users to bypass restrictions that prevent launching Jupyter Notebook kernels as root. This vulnerability arises from improper validation of user ID (UID) and group ID (GID) values. By default, the gateway prohibits UID or GID values of 0, which corresponds to the root user and group. However, this restriction can be circumvented by sending specially crafted KERNEL_UID or KERNEL_GID values that include whitespace, effectively tricking the validation process. Exploiting this vulnerability enables kernels to be executed with root privileges, increasing the risk of container escapes and compromising the underlying worker node and its workloads. In a Kubernetes environment, such exploitation could jeopardize the entire cluster.

Impact

Exploiting this vulnerability allows Jupyter kernels to be executed as root, which can lead to container escapes, compromising the worker node and all workloads running on it. In a Kubernetes cluster, repeated exploitation can affect all worker nodes, potentially compromising the entire cluster.

Reproduction

To reproduce this vulnerability, first verify that Jupyter Enterprise Gateway is running in a Kubernetes cluster with a version prior to 3.3.0. Then, attempt to launch a kernel by specifying the KERNEL_UID and KERNEL_GID environment variables with the value '0' (including a trailing space) to bypass the default prohibition. Once the kernel is running, it can be confirmed that it is executing as root by checking the user ID within the container.

Remediation

Users can upgrade to Jupyter Enterprise Gateway version 3.3.0, which includes a fix by implementing stricter UID and GID validations.

Added: Jul 16, 2026, 10:55 PM
Updated: Jul 16, 2026, 10:55 PM

Vulnerability Rating

Custom Algorithm
spread
0.0
impact
10.0
exploitability
6.6
remediation
0.0
relevance
9.7
threat
6.4
urgency
2.9
incentive
0.0

Our algorithm analyzes dozens of metrics to generate these 8 key vulnerability categories, which are then combined to calculate the overall risk score.