CanopiiCanopiiAll serversEnterprise →
High · caps the scoreCode safety

MCP servers that fail: no unsafe deserialization

100 of the 24,453 Model Context Protocol servers where this control could be evaluated fail it — that is 0% of the evaluated corpus on the Canopii Trust Index.

Servers failing
100
Failure rate
0%
Average score when failing
35/100

A further 13 servers warn on this control — a weaker signal we could not confirm, counted at half weight rather than as a failure.

Why this matters

pickle/yaml.load/etc. on untrusted data can execute code.

How to pass it

Use safe loaders (yaml.safe_load, JSON) on untrusted input.

Control id code.no_unsafe_deserialize — a guard control, so a confirmed failure caps the server's score at the high ceiling no matter what else passes.

Affected servers

We publish this count, not a list of targets. A confirmed high-severity failure of this control is a directly exploitable weakness. Each affected server's own page carries its result and evidence, so nothing is hidden from someone evaluating a specific server — but we will not publish a ranked list of exploitable systems, which is a different artifact serving a different reader.

Running one of these? The directory and the open-source scanner will tell you where you stand.

This control is one of 29 in the published rubric — see how scoring works or how the ecosystem fails every other control.