Most recent
navigate open esc close Corpus index built 2026-06-07 23:58 UTC

← All research

Survey May 3, 2026

Jupyter Notebook / JupyterHub on Public Cloud & University Networks: Auth Posture Survey

NuClide Research · 2026-05-03


Summary

Two-phase sweep targeting port 8888 across cloud-hosting providers and university research networks. Zero unauthenticated Jupyter instances found in either population. JupyterHub’s mandatory login and Jupyter Notebook’s token-auth defaults are universally adopted in both deployment contexts.

DCWF KSAT coverage

Auto-derived from DCWF AI work-role rule files (ksat-tag).

  • 672 (AI Test & Evaluation Specialist): K7003, K7044, S7068, S7070, S7075, T5904
  • 733 (AI Risk & Ethics Specialist): S7067, T5868, T5893, T5904
  • overlap (Common AI KSATs (all 5 roles)): K1158, K1159, K22, K6311, K6935, K7003, K942

Methodology

Phase 1, Cloud ranges (DO/Hetzner/Vultr):

masscan -iL <28 cloud /16 CIDRs> -p 8888 --rate 6000
  → 10,524 live hosts on :8888

Fingerprint: curl -L /  → title contains "Jupyter"
  → 0 confirmed Jupyter (all hits: Adminer, Chronograf, Spring Boot)

Phase 2, University research networks:

masscan -iL <26 university /16 CIDRs> -p 8888 --rate 3000
  → 1,259 live hosts on :8888

Fingerprint: HTTP 302 redirect + curl -L / → title "Jupyter Server" or "Jupyter Notebook"
  → 18 confirmed Jupyter instances

Auth check: GET /api/kernels (no auth header)
  → 18/18 returned 403 {"message":"Forbidden"}

Fingerprinting lesson: Port 8888 is heavily shared. /api/kernelspecs with substring match -ms '"kernelspecs"' produced high false-positive rates (Adminer serves kernels?file= in links; Spring Boot Config Server reflects path segments into "profiles" array). Title-based detection ("Jupyter" in <title>) after following 302 redirects is the reliable filter.


Confirmed University Instances (18, all protected)

IPInstitutionCountryAuth State
128.32.173.82UC Berkeley (AS25)US403 JupyterHub
128.32.246.65UC Berkeley (AS25)US403 JupyterHub
129.132.31.137ETH Zurich / SWITCH (AS559)CH403 JupyterHub
131.111.88.195University of Cambridge, Neurosurgery (AS786)UK403 JupyterHub
140.112.90.79National Taiwan University, CSIE (AS17716)TW403 JupyterHub
140.112.21.12National Taiwan University, EE (AS17716)TW403 JupyterHub
140.112.156.28National Taiwan University (AS17716)TW403 JupyterHub
165.246.43.214INHA University (AS9317)KR403 JupyterHub
165.246.43.222INHA University (AS9317)KR403 JupyterHub
165.246.149.63INHA University (AS9317)KR403 JupyterHub
140.119.81.90TANet / NCCU (AS1659)TW403 JupyterHub
140.119.162.16TANet / NCCU, chairmtchi.cs.nccu.edu.tw (AS1659)TW403 JupyterHub
140.119.164.19TANet / NCCU, cglab.cs.nccu.edu.tw (AS1659)TW403 JupyterHub
140.119.163.219TANet / NCCU, v100x4.cs.nccu.edu.tw (AS1659)TW403 JupyterHub
175.45.203.51NAVER Business Platform (AS135354)KR403 JupyterHub
210.125.101.156Korea Telecom (AS4766)KR403 JupyterHub
210.125.100.224Korea Telecom (AS4766)KR403 JupyterHub
210.125.93.241Korea Telecom (AS4766)KR403 JupyterHub

All 18 returned {"message":"Forbidden","reason":null}, JupyterHub XSRF protection active on the API layer.


Platform Posture Comparison (Cloud DO/Hetzner/Vultr)

PlatformConfirmedUnauthNotes
Flowise430 (0%)Post-CVE-2024-36420 hygiene
n8n1,0060 (0%)Mandatory auth since v0.166.0
Jupyter18 (univ)0 (0%)JupyterHub login + token-auth defaults
Qdrant6161 (100%)Auth off by default, no change
Elasticsearch4242 (100%)7.x default-no-auth still common

Pattern: Orchestration and compute tools have hardened. Data layer tools (vector DBs, search engines) remain default-open.


Why Jupyter Was High Priority

An unauthenticated Jupyter instance is full remote code execution, POST to /api/kernels creates a kernel, then POST /api/kernels/{id}/channels over WebSocket executes arbitrary Python in the server’s context. In university environments this means:

  • Access to GPU compute allocated to the server
  • Research data in the working directory (datasets, model outputs, credentials in notebooks)
  • Lateral movement onto the research network
  • Potential access to HPC cluster submission endpoints (SLURM, PBS) callable from notebook

The 0% unauth finding indicates JupyterHub deployment (with PAM/LDAP auth) has become standard at the universities surveyed.


Discoverer

NuClide Research, nicholas@nuclide-research.com

No data was accessed. Auth check was a single unauthenticated GET to /api/kernels; response code only.