Alta

Jupyter Server: Path Traversal via incorrect startswith() root directory check allows access to sibling directories

  • Publicada: 05.05.2026
  • Actualizado: 11.10.2026 15:17

Summary

Jupyter Server <=2.17.0 can access directories sibling to the root directory, if it starts with the root dir's name.

PoC

Minimal:

.
├── test/              <- root directory.
│   └── test.txt
└── testtest/
    └── secret.txt     <- file to exfiltrate that we should not be able to access via API
bash
HOST="http://localhost:8888"
TOKEN=""
SIBLING="testtest"
TARGET="secret.txt"

curl -s -X POST \
  "$HOST/api/contents/%2e%2e/$SIBLING/$TARGET/checkpoints" \
  -H "Authorization: token $TOKEN"

Full PoC by @stef41: https://gist.github.com/Yann-P/66d4982a965dee8fcb8dd89db29e7006

Impact

It is possible for an authenticated user to access content outside the server's root_dir in siblings directories sharing the same prefix as the root_dir. The attacker can escalate access, reading, writing, and deleting from sibling directories.

This can have a tangible impact for deployments using predictable naming scheme with multi-tenant server, for example user1, user2, user3, ..., user10 etc, as user1 could access and modify files of all user10 - user19 and higher.

In a hypothetical system where users can choose a name of their folder, an attacker could choose a single-letter username to gain access to a significant number of sibling directories.

Workarounds

Use folder names that do not overlap.

Acknowledgments

Thank you to @stef41 for providing a useful PoC.

Software afectado

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

PlataformaPaqueteVersiones vulnerablesCorregida en
Python (PyPI) jupyter-server < 2.18.0 2.18.0

Referencias

Puntuación CVSS 7.1/10
Vector CVSS
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:L
Debilidad (CWE)
CWE-22
Plataforma
Python (PyPI)
Paquete
jupyter-server
Publicada
05.05.2026
Actualizado
11.10.2026 15:17

Fuentes y licencias

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

OSV / GitHub Advisory Database - GHSA-5789-5fc7-67v3 - 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 (14) en el archivo
Entradas en total
14
Primera → última
11.2020 09.2026
Sin corrección
0
Explotada en ataques
0

Distribución por gravedad

  • Crítica 1
  • Alta 7
  • 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: 6
Gravedad:
  1. Jupyter Server: Path Traversal via incorrect startswith() root directory check allows access to sibling directories esta entrada
    Alta · 7.1 CVE-2026-35397 < 2.18.0 2.18.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.