Exposed daemon API

The Docker daemon exposes a full control API. When it is bound to a TCP port, reachable without authentication on 2375 or protected only by weak TLS on 2376, anyone who can reach it has root-equivalent control of the host: they enumerate the environment and then launch a privileged container that mounts the host filesystem.

1 منٹ کا مطالعہ7 اکتوبر، 2026 کو اپ ڈیٹ ہواflorianamette1 معاون
اپنے اسسٹنٹ سے پوچھیں (MCP)GitHub پر ترمیم کریں

The Docker daemon's API is its entire control surface, and it is root-equivalent by design: anyone who can call it can start a container that mounts the host and runs as root. Locally the API lives on a Unix socket, but operators frequently expose it over TCP for remote management, on 2375 (plain HTTP, no authentication) or 2376 (TLS). An exposed 2375, or a 2376 with weak or optional TLS, hands full host control to any client that can reach the port, with no exploit required.

Find and probe an exposed daemon:

bash
# scan for the Docker API ports
nmap -p 2375,2376 --open <target-range>
# a single unauthenticated request confirms control
curl -s http://<target>:2375/version
curl -s http://<target>:2375/info | head

A 200 with daemon version and info from 2375 means unauthenticated control.

Subtopics#

References#