Common attacks and weaknesses
- Anyone can start a privileged container and take over the host.
- Massively exploited by cryptominer botnets.
Docker Engine API without TLS. Exposing it gives root on the host to anyone.
Commands sent to port 2375 create and control containers or cluster resources on the host. It travels in clear text: anyone on the path can read it.
Unofficial use. The IANA assignment below differs from what is usually found on this port in practice.
| Service | Port | Transport | Description | Reference | Updated |
|---|---|---|---|---|---|
| docker | 2375 | TCP | Docker REST API (plain text) | - | 2014-04-17 |
| - | 2375 | - | Reserved | - | - |
// source: IANA service name and port number registry
Linux
sudo ss -ltnup 'sport = :2375' # process listening on 2375
sudo lsof -nP -i :2375macOS
sudo lsof -nP -i :2375
Windows (PowerShell)
Get-NetTCPConnection -LocalPort 2375 -State Listen | Select LocalAddress, OwningProcess Get-NetUDPEndpoint -LocalPort 2375 netstat -ano | findstr :2375
From another machine
nmap -p 2375 -sV <host> nc -zv <host> 2375
Block it in the firewall
sudo ufw deny 2375/tcp # Linux (ufw) New-NetFirewallRule -DisplayName "Block 2375" -Direction Inbound -LocalPort 2375 -Protocol TCP -Action Block # Windows
Docker Engine API without TLS. Exposing it gives root on the host to anyone.
Port 2375 is registered for TCP.
It is rated 10/10 (critical) when exposed to the Internet. Anyone can start a privileged container and take over the host. Never enable the TCP socket without TLS; use the Unix socket or SSH.
On Linux run "ss -ltnup 'sport = :2375'", on macOS "lsof -nP -i :2375", and on Windows "netstat -ano | findstr :2375" to see the local process. From another machine, "nmap -p 2375 <host>" shows whether it is reachable.