{"id":"CVE-2026-45781","state":"PUBLISHED","title":"MCP Registry: OCI ownership validation fails open on upstream rate limits, allowing attacker-controlled package claims","description":"The MCP Registry provides MCP clients with a list of MCP servers, like an app store for MCP servers. Prior to 1.7.9, OCI ownership validation skips label-match check when upstream OCI registry returns HTTP 429, letting any authenticated publisher bind their io.github.<user>/* namespace to OCI images they do not control. 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. This vulnerability is fixed in 1.7.9.","publishedAt":"2026-05-14T21:00:49.961Z","updatedAt":"2026-05-16T01:06:38.302Z","severity":{"score":3.5,"label":"Low","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:N","source":"GitHub_M"},"assigner":"GitHub_M","products":["modelcontextprotocol registry"],"affected":[{"vendor":"modelcontextprotocol","product":"registry","versions":[{"version":"< 1.7.9","status":"affected"}]}],"references":["https://github.com/modelcontextprotocol/registry/security/advisories/GHSA-2v5f-5r6w-p67r"],"weaknesses":["CWE-636"],"ingestedAt":"2026-10-29T20:12:07.131Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/45xxx/CVE-2026-45781.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-45781","state":"PUBLISHED","datePublished":"2026-05-14T21:00:49.961Z","dateUpdated":"2026-05-16T01:06:38.302Z","assignerShortName":"GitHub_M","assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateReserved":"2026-05-13T07:45:21.252Z"},"containers":{"cna":{"title":"MCP Registry: OCI ownership validation fails open on upstream rate limits, allowing attacker-controlled package claims","descriptions":[{"lang":"en","value":"The MCP Registry provides MCP clients with a list of MCP servers, like an app store for MCP servers. Prior to 1.7.9, OCI ownership validation skips label-match check when upstream OCI registry returns HTTP 429, letting any authenticated publisher bind their io.github.<user>/* namespace to OCI images they do not control. 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. This vulnerability is fixed in 1.7.9."}],"affected":[{"vendor":"modelcontextprotocol","product":"registry","versions":[{"version":"< 1.7.9","status":"affected"}]}],"references":[{"url":"https://github.com/modelcontextprotocol/registry/security/advisories/GHSA-2v5f-5r6w-p67r","name":"https://github.com/modelcontextprotocol/registry/security/advisories/GHSA-2v5f-5r6w-p67r","tags":["x_refsource_CONFIRM"]}],"metrics":[{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":3.5,"baseSeverity":"LOW","confidentialityImpact":"NONE","integrityImpact":"LOW","privilegesRequired":"LOW","scope":"UNCHANGED","userInteraction":"REQUIRED","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:N","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-636","lang":"en","description":"CWE-636: Not Failing Securely ('Failing Open')","type":"CWE"}]}],"providerMetadata":{"shortName":"GitHub_M","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateUpdated":"2026-05-14T21:00:49.961Z"},"source":{"advisory":"GHSA-2v5f-5r6w-p67r","discovery":"UNKNOWN"}},"adp":[{"title":"CISA ADP Vulnrichment","references":[{"url":"https://github.com/modelcontextprotocol/registry/security/advisories/GHSA-2v5f-5r6w-p67r","tags":["exploit"]}],"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-05-16T01:05:36.535544Z","id":"CVE-2026-45781","options":[{"Exploitation":"poc"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-05-16T01:06:38.302Z"}}]}}}