Common attacks and weaknesses
- Notebooks without token give arbitrary code execution.
Default port of Jupyter Notebook and various proxies.
A browser sends an HTTP request to port 8888 and the Jupyter / HTTP alternate server sends the page back. It travels in clear text: anyone on the path can read it, passwords included.
Unofficial use. The IANA assignment below differs from what is usually found on this port in practice.
| Service | Port | Transport | Description | Reference | Updated |
|---|---|---|---|---|---|
| ddi-tcp-1 | 8888 | TCP | NewsEDGE server TCP (TCP 1) Reported: Known Unauthorized Use on port 8888 | - | - |
| ddi-udp-1 | 8888 | UDP | NewsEDGE server UDP (UDP 1) Reported: Known Unauthorized Use on port 8888 | - | - |
// source: IANA service name and port number registry
Linux
sudo ss -ltnup 'sport = :8888' # process listening on 8888
sudo lsof -nP -i :8888macOS
sudo lsof -nP -i :8888
Windows (PowerShell)
Get-NetTCPConnection -LocalPort 8888 -State Listen | Select LocalAddress, OwningProcess Get-NetUDPEndpoint -LocalPort 8888 netstat -ano | findstr :8888
From another machine
nmap -p 8888 -sV <host> sudo nmap -sU -p 8888 <host> nc -zv <host> 8888
Block it in the firewall
sudo ufw deny 8888/tcp # Linux (ufw) New-NetFirewallRule -DisplayName "Block 8888" -Direction Inbound -LocalPort 8888 -Protocol TCP -Action Block # Windows
Default port of Jupyter Notebook and various proxies.
Port 8888 is registered for TCP and UDP. In practice the service mostly uses TCP.
It is rated 7/10 (high) when exposed to the Internet. Notebooks without token give arbitrary code execution. Keep token or password authentication and bind to localhost; use SSH tunnels.
On Linux run "ss -ltnup 'sport = :8888'", on macOS "lsof -nP -i :8888", and on Windows "netstat -ano | findstr :8888" to see the local process. From another machine, "nmap -p 8888 <host>" shows whether it is reachable.