{
  "port": 8888,
  "protocol": "tcp",
  "service": "Jupyter Notebook, HTTP alternate",
  "oneLiner": "Jupyter's default port, and the second-most-common \"just give me an HTTP port\" number after 8080.",
  "whatItIs": "Starting a Jupyter notebook or JupyterLab server opens a browser at http://127.0.0.1:8888 by default, which is why 8888 turns up on data-science laptops and GPU boxes. IANA's registration is ddi-tcp-1 (NewsEDGE server), which you will never meet. Otherwise 8888 is a generic HTTP alternate chosen by proxies, container images, and hand-rolled services. A notebook server is the case that matters: it executes arbitrary code as the user who started it.",
  "exposure": {
    "verdict": "never",
    "note": "A reachable Jupyter server is remote code execution by design — token or password auth is the only thing between a visitor and your shell, so keep it on loopback or behind an authenticated proxy or SSH tunnel."
  },
  "checkCommand": "curl -sI http://127.0.0.1:8888/",
  "links": [
    {
      "title": "Jupyter Notebook docs — running the notebook (defaults to 127.0.0.1:8888)",
      "url": "https://jupyter-notebook.readthedocs.io/en/stable/notebook.html",
      "kind": "official-docs"
    },
    {
      "title": "jupyter/notebook on GitHub",
      "url": "https://github.com/jupyter/notebook",
      "kind": "github"
    },
    {
      "title": "IANA Service Name and Transport Protocol Port Number Registry — 8888",
      "url": "https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=8888",
      "kind": "iana"
    }
  ],
  "ianaName": "ddi-tcp-1"
}
