Alta

Jupyter Server: El manejador WebSocket de gateway omite la autorización de ejecución del kernel

  • Publicada: 22.10.2026
  • Actualizado: 24.10.2026 00:07

Resumen

El manejador WebSocket de gateway de Jupyter Server comprueba que el usuario esté autenticado, pero no consulta al Authorizer configurado si dicho usuario tiene permiso para ejecutar kernels.

En Jupyter Server 2.0.0 hasta 2.5.0, habilitar GatewayClient.url reemplazaba automáticamente el manejador habitual del canal del kernel por este manejador específico del gateway. Por lo tanto, un usuario autenticado al que se le deniega la acción execute sobre el recurso kernels puede, aun así, abrir un canal hacia el kernel y enviar mensajes al kernel upstream.

Detalles

El manejador habitual realiza la comprobación de autorización esperada antes de crear la conexión WebSocket:

https://github.com/jupyter-server/jupyter_server/blob/v2.5.0/jupyter_server/services/kernels/websocket.py#L39-L47

El manejador del gateway únicamente comprueba current_user y después abre el canal upstream. Nunca invoca a authorizer.is_authorized(...):

https://github.com/jupyter-server/jupyter_server/blob/v2.5.0/jupyter_server/gateway/handlers.py#L49-L75 https://github.com/jupyter-server/jupyter_server/blob/v2.5.0/jupyter_server/gateway/handlers.py#L87-L98

El modo gateway seleccionaba dicho manejador automáticamente reemplazando los manejadores con rutas coincidentes:

https://github.com/jupyter-server/jupyter_server/blob/v2.5.0/jupyter_server/serverapp.py#L437-L446

El PR #1261 dejó de sustituir el manejador normal y en su lugar enrutó el tráfico del gateway a través de GatewayWebSocketConnection. Esto parece haber corregido la configuración predeterminada del gateway en 2.6.0, aunque el manejador obsoleto sigue presente en las versiones actuales y todavía se puede registrar de forma directa.

https://github.com/jupyter-server/jupyter_server/pull/1261

Validación a nivel de código

  1. Configure un Authorizer personalizado que devuelva false para execute sobre kernels para un usuario autenticado estándar.
  2. Configure GatewayClient.url en Jupyter Server 2.0.0-2.5.0.
  3. El KernelWebsocketHandler habitual rechazaría a dicho usuario con 403 en pre_get.
  4. El modo gateway lo sustituye por WebSocketChannelsHandler. Su método authenticate solo rechaza a usuarios anónimos, y get continúa hacia el gateway upstream sin una decisión de autorización.

Impacto

Se trata de una omisión de verificación de autorización, no de una elusión de autenticación. Afecta a implementaciones que utilicen un Authorizer personalizado restrictivo y Jupyter Gateway/Enterprise Gateway. Un usuario autenticado con permisos de solo lectura o limitados de otro modo puede cruzar el límite de autorización previsto y lograr la ejecución en el kernel, accediendo a los datos y credenciales a disposición de dicho kernel.

Versiones afectadas

  • Configuración predeterminada del gateway: 2.0.0 hasta 2.5.0
  • 2.6.0 y posteriores: la ruta predeterminada utiliza el manejador estándar autorizado, pero registrar manualmente el módulo en desuso jupyter_server.gateway.handlers todavía expone el comportamiento anterior.

Qué hacer

Para configuraciones predeterminadas de gateway, actualice a Jupyter Server 2.6.0 o posterior. En la versión 2.6.0 y posteriores, evite registrar manualmente el módulo obsoleto jupyter_server.gateway.handlers, ya que continúa mostrando el comportamiento vulnerable.

Software afectado

Haz clic en una tecnología para ver todas sus vulnerabilidades.

PlataformaPaqueteVersiones vulnerablesCorregida en
Python (PyPI) jupyter-server >= 2.0.0, < 2.6.0 2.6.0

Referencias

Puntuación CVSS 8.8/10
Vector CVSS
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Debilidad (CWE)
CWE-862
Plataforma
Python (PyPI)
Paquete
jupyter-server
Publicada
22.10.2026
Actualizado
24.10.2026 00:07

Fuentes y licencias · Editado o traducido por DockRay; se mantienen los derechos y las licencias de las fuentes.

OSV / GitHub Advisory Database - GHSA-354v-3q48-cv69 - CC BY 4.0

Historial de vulnerabilidades: jupyter-server

Todas las vulnerabilidades publicadas de este paquete (Python (PyPI)), de la más reciente a la más antigua. Muestra si es un fallo aislado o un paquete que hay que vigilar.

Todas (15) en el archivo
Entradas en total
15
Primera → última
11.2020 10.2026
Sin corrección
0
Explotada en ataques
0

Distribución por gravedad

  • Crítica 1
  • Alta 8
  • Media 6

Divulgaciones por año

  1. 2020: 2
  2. 2021: 0
  3. 2022: 2
  4. 2023: 3
  5. 2024: 1
  6. 2025: 0
  7. 2026: 7
Gravedad:
  1. Jupyter Server: El manejador WebSocket de gateway omite la autorización de ejecución del kernel esta entrada
    Alta · 8.8 CVE-2026-114135 >= 2.0.0, < 2.6.0 2.6.0
  2. Alta · 7.5 CVE-2024-35178 < 2.14.1 2.14.1
  3. Alta · 7.1 CVE-2022-29241 < 1.17.1, >= 2.0.0a0, < 2.0.0a1 1.17.1, 2.0.0a1

Identifica las vulnerabilidades de tu aplicación

Con la integración de DockRay y el inventario de software activado, DockRay compara las versiones notificadas de los componentes con las vulnerabilidades conocidas y avisa de las coincidencias confirmadas. La cobertura depende de la tecnología compatible y de los avisos disponibles.

Conectar tu aplicación
Newsletter DockRay

La seguridad de tus aplicaciones en tu correo

Vulnerabilidades importantes, recomendaciones concretas y consejos prácticos para tus aplicaciones. Elige tus tecnologías y sigue lo que importa para tu proyecto.

  • Un resumen diario de nuevas vulnerabilidades, también las críticas.
  • Avisos sobre actualizaciones importantes.
  • Consejos prácticos sobre seguridad y monitorización de aplicaciones.

Déjalo vacío para recibir avisos de todas las tecnologías.

Suscripción gratuita. Date de baja con un clic en cualquier correo.