Jupyter Server: El manejador WebSocket de gateway omite la autorización de ejecución del kernel
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:
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
- Configure un Authorizer personalizado que devuelva false para
executesobrekernelspara un usuario autenticado estándar. - Configure
GatewayClient.urlen Jupyter Server 2.0.0-2.5.0. - El
KernelWebsocketHandlerhabitual rechazaría a dicho usuario con 403 enpre_get. - El modo gateway lo sustituye por
WebSocketChannelsHandler. Su métodoauthenticatesolo rechaza a usuarios anónimos, ygetcontinú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.handlerstodaví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.
| Plataforma | Paquete | Versiones vulnerables | Corregida en |
|---|---|---|---|
| Python (PyPI) | jupyter-server | >= 2.0.0, < 2.6.0 | 2.6.0 |
Referencias
- https://github.com/jupyter-server/jupyter_server/security/advisories/GHSA-354v-3q48-cv69
- https://nvd.nist.gov/vuln/detail/CVE-2026-114135
- https://github.com/jupyter-server/jupyter_server/pull/1261
- https://github.com/jupyter-server/jupyter_server/commit/35ffe5d435682128da16dc144a8e9e9f8fa85dd8
- https://github.com/jupyter-server/jupyter_server
- https://github.com/jupyter-server/jupyter_server/releases/tag/v2.6.0
- 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.
- 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
- 2020: 2
- 2021: 0
- 2022: 2
- 2023: 3
- 2024: 1
- 2025: 0
- 2026: 7
-
Jupyter Server: El manejador WebSocket de gateway omite la autorización de ejecución del kernel esta entrada
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.