Media

Salto de directorio en la restauración de marcadores en Shiny for Python

  • Publicada: 09.10.2026
  • Actualizado: 15.10.2026 18:17

El aviso original ha cambiado desde que se preparó esta explicación. Consulta los datos técnicos actuales y el aviso original a continuación.

Impacto

La ruta de restauración de marcadores de Shiny for Python aceptaba el valor de cadena de consulta _state_id_ proporcionado por el cliente y lo unía al directorio de marcadores del servidor (<cwd>/shiny_bookmarks/<id>) sin validarlo. Un valor que contuviera segmentos de ruta .., o una ruta absoluta, podía provocar que el servidor abriera y analizara input.json y values.json desde un directorio situado fuera del almacenamiento de marcadores.

En una aplicación predeterminada, la restauración se intentaba siempre que el cliente proporcionaba una cadena de consulta URL, incluso cuando los marcadores estaban deshabilitados (bookmark_store="disable"), por lo que no se requería ninguna configuración explícita. Para dichas aplicaciones, el impacto es un sondeo no autenticado en el servidor sobre la existencia y validez de JSON de rutas elegidas por el atacante, restringido a esos dos nombres de archivo.

Las aplicaciones configuradas con bookmark_store="server" y que utilizan ui.input_file() se ven afectadas de forma más grave. El controlador de restauración de entrada de archivos copia archivos fuera del directorio de restauración, por lo que el contenido de un archivo seleccionado por el atacante dentro de un directorio seleccionado por el atacante podría ser leído dentro de la aplicación.

Versiones afectadas

Desde 1.4.0 hasta 1.6.3. Los marcadores se introdujeron en 1.4.0; las versiones anteriores no contienen la ruta de código afectada y no son vulnerables.

Créditos

Reportado por @0xRenSec.).

Qué hacer

Parches

Corregido en 1.6.4. Actualice con:

pip install --upgrade shiny

La corrección valida los identificadores de marcadores frente a una lista de permitidos —un único segmento de ruta que coincide con [A-Za-z0-9_-]+, el cual no puede expresar un separador de ruta, una referencia al directorio principal .., ni una ruta absoluta— antes de que el identificador se use para construir una ruta en el sistema de archivos. Los identificadores de marcadores generados por Shiny no se ven afectados por esta restricción. La restauración además se controla en un único punto mediante el ajuste bookmark_store de la aplicación, por lo que ya no se ejecuta cuando los marcadores están deshabilitados, y la ruta de restauración en disco solo se respeta bajo bookmark_store="server".

Mitigaciones alternativas

No existe ningún cambio de configuración que mitigue esto en una versión afectada: la ruta de restauración se ejecutaba incluso con bookmark_store="disable". Los despliegues que no puedan actualizar inmediatamente pueden eliminar el parámetro _state_id_ de las cadenas de consulta entrantes en un proxy inverso o balanceador de carga, lo que evita que se alcance la ruta de código afectada.

Software afectado

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

PlataformaPaqueteVersiones vulnerablesCorregida en
Python (PyPI) shiny >= 1.4.0, < 1.6.4 1.6.4

Referencias

Puntuación CVSS -
Vector CVSS
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Debilidad (CWE)
CWE-22
Plataforma
Python (PyPI)
Paquete
shiny
Publicada
09.10.2026
Actualizado
15.10.2026 18:17

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

OSV / GitHub Advisory Database - PYSEC-2026-4300 - PyPA Advisory Database; CC BY 4.0

OSV / GitHub Advisory Database - GHSA-47c3-hpmg-7j6p - CC BY 4.0

Historial de vulnerabilidades: shiny

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.

Esta es la única vulnerabilidad conocida de este paquete.

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.