CanopiiCanopiiAll serversEnterprise →
High · caps the scoreCode safety

MCP servers that fail: no unsafe deserialization

87 of the 14,987 Model Context Protocol servers where this control could be evaluated fail it — that is 1% of the evaluated corpus on the Canopii Trust Index.

Servers failing
87
Failure rate
1%
Average score when failing
34/100

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.