MCP server runs as privileged
ID |
mcp-server-runs-as-privileged |
Severity |
high |
Remediation Complexity |
trivial |
Remediation Risk |
medium |
Remediation Effort |
low |
OWASP LLM |
— |
OWASP ASI |
ASI03:2026 (Privilege Escalation), secondary ASI05:2026 |
Family |
ASI03 — Identity & Privilege Abuse |
Red-team vectors |
Privilege Escalation / Containment Failure |
Tags |
ai_security |
Description
An MCP-server container / process manifest runs as root / privileged: no privilege-restriction declaration in its Dockerfile, docker-compose service, Kubernetes pod spec, or systemd unit. An MCP server run as root can read or write any file on the system, escalate to the host if a container breakout occurs, and inject code into peer processes — so the containment boundary around a tool-executing surface is gone.
Scoped to MCP manifests (an MCP signal in the file is required). One finding per manifest, by type:
-
Dockerfile — no
USERdirective, orUSER root/USER 0; -
docker-compose — no
user:field; -
Kubernetes — no
securityContext.runAsNonRoot: trueand norunAsUser; -
systemd unit — no
User=directive.
A USER root with a justification comment on the same line is allowed (explicit intent).