v0.2.0 · live
CAPFRAME
§ serverhttpfindings.v2

OpenZeppelin Solidity Contracts MCP

https://mcp.openzeppelin.com/contracts/solidity/mcp

Score
B92
Findings
2
Tools
8
Last scan
2026-07-20

Severity breakdown

Critical0
High2
Medium0
Low0
Info0

Worst finding

Tool `solidity-erc721` accepts an unconstrained URL / endpoint parameter

· solidity-erc721

The parameter(s) `baseUri` look like URL or endpoint inputs but carry no `pattern` or `enum` constraint. An agent tricked by an indirect-injection payload can invoke this tool with an internal-service URL (e.g. `http://169.254.169.254/`) to exfiltrate cloud metadata, probe internal APIs, or pivot to services the host can reach but the caller cannot.

fix: Constrain the URL parameter with an allow-list `enum`, or a `pattern` that restricts scheme and domain. Validate server-side against an allow-list and reject private / loopback / link-local address ranges at the HTTP client level.

All 2 findings

  1. high
    Tool `solidity-erc721` accepts an unconstrained URL / endpoint parameter· solidity-erc721ssrf surface

    The parameter(s) `baseUri` look like URL or endpoint inputs but carry no `pattern` or `enum` constraint. An agent tricked by an indirect-injection payload can invoke this tool with an internal-service URL (e.g. `http://169.254.169.254/`) to exfiltrate cloud metadata, probe internal APIs, or pivot to services the host can reach but the caller cannot.

    fix: Constrain the URL parameter with an allow-list `enum`, or a `pattern` that restricts scheme and domain. Validate server-side against an allow-list and reject private / loopback / link-local address ranges at the HTTP client level.

  2. high
    Tool `solidity-erc1155` accepts an unconstrained URL / endpoint parameter· solidity-erc1155ssrf surface

    The parameter(s) `uri` look like URL or endpoint inputs but carry no `pattern` or `enum` constraint. An agent tricked by an indirect-injection payload can invoke this tool with an internal-service URL (e.g. `http://169.254.169.254/`) to exfiltrate cloud metadata, probe internal APIs, or pivot to services the host can reach but the caller cannot.

    fix: Constrain the URL parameter with an allow-list `enum`, or a `pattern` that restricts scheme and domain. Validate server-side against an allow-list and reject private / loopback / link-local address ranges at the HTTP client level.

How this was scored

Source http live HTTP MCP endpoint, classified against every rule. Findings are emitted by the public capframe.findings.v1 schema. Score = 100 − (10·Critical + 4·High + 2·Medium + 1·Low), clamped to [0, 100].

Disagree with a finding? Open an issue.