Advisory Database
  • Advisories
  • Dependency Scanning
  1. golang
  2. ›
  3. github.com/modelcontextprotocol/registry
  4. ›
  5. CVE-2026-45781

CVE-2026-45781: MCP Registry: OCI validator skips ownership check on upstream rate limits

May 19, 2026

internal/validators/registries/oci.go:104-119 fails open on http.StatusTooManyRequests: when the registry’s anonymous fetch to the upstream OCI registry is rate-limited, ValidateOCI returns nil and the publish is accepted without ever running the io.modelcontextprotocol.server.name label-match check at lines 122-141. That label check is the only cross-system ownership proof the registry applies to OCI packages — every other registry type (NPM, PyPI, NuGet, MCPB) treats a non-200 upstream response as a hard error.

The fail-open trigger is attacker-controllable. The registry uses authn.Anonymous against Docker Hub, which is rate-limited to 100 manifest pulls per 6 hours per egress IP, and the production NGINX rate limit allows 180 publishes/minute (3 RPS, burst 540) per source IP. A single attacker from a single IP can exhaust the registry’s shared anonymous quota in roughly 33 seconds, then submit a final publish that points packages[].identifier at a Docker Hub image they do not own. The validator hits the 429 fail-open branch, returns nil, and the registry stores a record under the attacker’s namespace claiming the unrelated image as its package payload, with no label proof in evidence.

The fail-open is also reached without an attacker present. Docker Hub routinely 429s busy egress IPs during organic traffic, so publishes during those windows skip OCI ownership validation silently.

References

  • github.com/advisories/GHSA-2v5f-5r6w-p67r
  • github.com/modelcontextprotocol/registry/security/advisories/GHSA-2v5f-5r6w-p67r
  • nvd.nist.gov/vuln/detail/CVE-2026-45781

Code Behaviors & Features

Detect and mitigate CVE-2026-45781 with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →

Affected versions

All versions before 1.7.9

Fixed versions

  • 1.7.9

Solution

Upgrade to version 1.7.9 or above.

Impact 3.5 LOW

CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:N

Learn more about CVSS

Weakness

  • CWE-636: Not Failing Securely ('Failing Open')

Source file

go/github.com/modelcontextprotocol/registry/CVE-2026-45781.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Thu, 21 May 2026 12:17:32 +0000.