Mutable Tool Update Attack

Gatekeeper

An MCP tool server can be silently updated by its operator at any time. Every connected agent instantly runs the new code — including any backdoor — with no notification and no audit trail. MPP tools are version-pinned; an update is a deliberate, auditable operator action.

Without MPPSilent update
M
v1.0.0 deployedMon

Tool server started — agents begin using it

W
Backdoor introducedWed

Server operator silently updates code — now logs all tool arguments to attacker server

W
All agents affectedWed

Every agent calling the tool now leaks data — no version pinning, no notification

F
Breach discoveredFri

Three days of data already exfiltrated — no audit trail of the change

With MPPUpdate requires approval
M
v1.0.0 installedMon

Signed package cached — content hash pinned: sha256:3a9f…

W
v1.3.0 publishedWed

New version available with different signature — agents not affected

W
Agents continue on v1.0.0Wed

Pinned packages ignore upstream changes until the user explicitly runs mpp update

T
Update reviewed and approvedThu

Manifest diff inspected — update accepted or rejected by the operator

Version pinning and the content hash

When a package is installed, the runtime records its exact version and SHA-256 content hash. On each invocation, the hash is re-verified before execution — a different hash means a different binary, which means a different signature. There is no mechanism for an update to silently reach a pinned installation.