90,626 Jupyter Notebooks Are Publicly Indexed: The Difference Between Sharing and Exposing
90,626 Jupyter Notebooks Are Publicly Indexed: The Difference Between Sharing and Exposing Jupyter notebooks are where analysis happens: data exploration, model training, ad-hoc automation. They are also, when left on the public internet without authentication, arbitrary code execution as a service — anyone who reaches the UI can open a terminal and run commands as the service user. The exposure…
90,626 Jupyter notebooks have been publicly indexed, highlighting the distinction between sharing and exposing sensitive information. Jupyter notebooks are used for data analysis, model training, and ad-hoc automation, but when left unsecured on the internet, they can be exploited as a means of arbitrary code execution. As of September 21, 2026, ZoomEye's app=Jupyter Notebook fingerprint identified 90,626 hosts, representing an upper bound for the population that requires checking, not a vulnerability count.
Unauthenticated Jupyter notebooks serve as a remote code execution service, granting visitors a shell with the notebook user's permissions and network access. The security documentation for Jupyter notes that token authentication is the default since version 5.0, indicating that misconfigured instances are often the result of deliberate or accidental negligence.
Organizational operations must assess whether their analysis hosts are publicly accessible. Given that notebooks are typically created by individual analysts, they often fall outside formal governance structures, spun up on localhost or with 0.0.0.0 binding and subsequently forgotten. The large count underscores the prevalence of this risk.
To mitigate exposure, it is recommended to bind notebook servers to localhost or an internal interface, access them via SSH tunnels or an authenticated proxy, enforce token or password authentication, and limit the notebook user's permissions, avoiding root access. Any public Jupyter instances within an organization's IP space should be treated as an immediate incident, assuming potential code execution has already occurred.
References include Jupyter Server security documentation and the public server guide, both of which provide guidance on securing Jupyter environments.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.