JupyterLab: El diálogo de confianza para enlaces de comandos puede confiar en un documento distinto al pulsado
Descripción
Un archivo Markdown o la salida de un cuaderno pueden contener un botón que ejecute un comando de JupyterLab. Desde 4.5.7, el primer clic en dicho botón abre un diálogo que nombra el comando, con las opciones Cancelar, Ejecutar una vez y Confiar. Seleccionar Confiar ejecuta el comando y marca el documento como confiable, por lo que sus botones posteriores se ejecutan sin confirmación.
El documento que se marca se determina cuando el usuario responde, no cuando hace clic. Ambos comandos de confianza leen el documento que esté activo en ese instante: markdownviewer:trust utiliza tracker.currentWidget, y notebook:trust utiliza una búsqueda equivalente. Si otro documento pasa a ser el activo mientras el diálogo permanece abierto, ese documento será el que se marque como de confianza, y el que el usuario estaba viendo permanecerá como no confiable.
Los usuarios se ven afectados si se cumplen todas las condiciones siguientes:
- Ejecutan JupyterLab de 4.5.7 a 4.6.3, o una aplicación que lo incluya como Notebook 7.5+;
- abren un archivo Markdown o un cuaderno de otra persona y hacen clic en un botón dentro de él;
- seleccionan Confiar en lugar de Cancelar o Ejecutar una vez; y
- un segundo documento pasa a ser el documento activo mientras el mensaje está abierto, por ejemplo mediante la restauración de un espacio de trabajo al inicio, una extensión que activa un widget o un comando que abre un archivo.
Impacto
El usuario pierde el control sobre qué documento marcó como confiable. Cada botón en el documento marcado (incorrectamente) como confiable se ejecutará a partir de ese momento sin confirmación previa; por lo tanto, si ese documento también proviene de una fuente no confiable, sus botones se activarán con un solo clic. Esta es la situación que el aviso pretendía evitar en GHSA-mqcg-5x36-vfcg..
El comando que se ejecutó contaba con el consentimiento del usuario, ya que el mensaje indicaba su nombre y este presionó Confiar. El documento que estaba leyendo sigue sin ser de confianza, por lo que volverá a solicitar confirmación en el siguiente clic.
Los cuadernos se guardan en el disco
Cuando el documento marcado es un cuaderno, el efecto perdura más allá de la sesión del navegador. notebook:trust marca cada celda como de confianza y luego guarda el archivo, lo que provoca que el servidor lo firme; de este modo, el cuaderno sigue siendo de confianza la próxima vez que se abra. Al guardar, también se escriben los cambios no guardados en dicho cuaderno. Primero aparece una segunda confirmación, pero solo advierte que un cuaderno de confianza puede ejecutar código oculto, sin especificar el nombre del archivo, por lo que no muestra al usuario qué cuaderno está a punto de considerarse de confianza.
Una vista previa de Markdown marcada de esta forma solo permanece como de confianza hasta que se cierra. No se escribe nada en el disco.
Parches
JupyterLab v4.6.4 y v4.5.11 contienen el parche. La solicitud de confianza ahora incluye el documento en el que se hizo clic, y el comando solo se ejecuta una vez que dicho documento ha sido marcado.
Los usuarios de aplicaciones que dependen de JupyterLab, como Notebook v7+, también deben actualizar el paquete jupyterlab.
Soluciones temporales
Dada la alta complejidad de un posible exploit, se recomienda tratar esto como defensa en profundidad y actualizar lo antes posible en lugar de aplicar las soluciones temporales descritas a continuación. No obstante, para los usuarios en entornos altamente sensibles que no puedan actualizar, se detallan las siguientes alternativas.
Desactive el enlazador de comandos, lo que elimina completamente la capacidad de ejecutar comandos del frontend:
{
"@jupyterlab/apputils-extension:sanitizer": {
"allowCommandLinker": false
}
}
En dicha configuración, los botones en archivos Markdown y en las salidas de los cuadernos no harán nada al hacer clic. La documentación y las extensiones que utilizan enlaces de comandos para la navegación dejarán de funcionar, y este ajuste se aplica a todos los documentos, no solo a los que no son de confianza.
Si no resulta conveniente deshabilitar esa configuración y la actualización no es posible, recomiende a los usuarios elegir «Ejecutar una vez» en lugar de «Confiar». «Ejecutar una vez» ejecuta el comando sin marcar ningún documento, evitando que se confíe en alguno por error.
Qué hacer
Actualice JupyterLab a la versión v4.6.4 o v4.5.11. Los usuarios de aplicaciones dependientes como Notebook v7+ deben actualizar el paquete jupyterlab. Si no es posible actualizar, deshabilite el command linker con ```json
{
"@jupyterlab/apputils-extension:sanitizer": {
"allowCommandLinker": false
}
}
Software afectado
Haz clic en una tecnología para ver todas sus vulnerabilidades.
| Plataforma | Paquete | Versiones vulnerables | Corregida en |
|---|---|---|---|
| Python (PyPI) | jupyterlab | >= 4.6.0, < 4.6.4, >= 4.5.7, < 4.5.11 | 4.6.4, 4.5.11 |
| Python (PyPI) | jupyterlite-core | >= 0.7.5, < 0.8.4 | 0.8.4 |
| Python (PyPI) | notebook | >= 7.5.6, < 7.6.3 | 7.6.3 |
Referencias
- https://github.com/jupyterlab/jupyterlab/security/advisories/GHSA-jwrc-gm9j-263p
- https://nvd.nist.gov/vuln/detail/CVE-2026-102832
- https://github.com/jupyterlab/jupyterlab/commit/0fc18ab4ef67e431a8f6560e387193baf786c70a
- https://github.com/jupyterlab/jupyterlab/commit/b64bc88b8ca034cf158604a5cc48ca9170ea453b
- https://github.com/jupyterlab/jupyterlab/commit/f7e5f9803fdf2aaaa0e9bfb9cc73386a8cc5f0b2
- https://github.com/jupyterlab/jupyterlab
- https://github.com/jupyterlab/jupyterlab/releases/tag/v4.5.11
- https://github.com/jupyterlab/jupyterlab/releases/tag/v4.6.4
- Vector CVSS
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N- Debilidad (CWE)
CWE-367, CWE-863- Plataforma
- Python (PyPI)
- Paquete
jupyterlab, jupyterlite-core, notebook- Publicada
- 15.10.2026
- Actualizado
- 20.10.2026 13:35
Fuentes y licencias · Editado o traducido por DockRay; se mantienen los derechos y las licencias de las fuentes.
OSV / GitHub Advisory Database - GHSA-jwrc-gm9j-263p - CC BY 4.0
Historial de vulnerabilidades: jupyterlab
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
- 19
- Primera → última
- 08.2021 10.2026
- Sin corrección
- 0
- Explotada en ataques
- 0
Distribución por gravedad
- Crítica 1
- Alta 8
- Media 8
- Baja 2
Divulgaciones por año
- 2021: 1
- 2022: 0
- 2023: 0
- 2024: 4
- 2025: 1
- 2026: 13
-
JupyterLab: El diálogo de confianza para enlaces de comandos puede confiar en un documento distinto al pulsado 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.