<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://cve.radiocsirt.org</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Tue, 06 Oct 2026 05:03:51 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-319122</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-319122</link>
      <description>EUVD-2026-319122</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-319122</guid>
    </item>
    <item>
      <title>fkie_cve-2026-45781</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-45781</link>
      <description>&lt;p&gt;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.&amp;lt;user&amp;gt;/* namespace to OCI images they do not control. internal/validators/registries/oci.go:104-119 fails open on http.StatusTooManyRequests: when the registry&amp;#39;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.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;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.&amp;lt;user&amp;gt;/* namespace to OCI images they do not control. internal/validators/registries/oci.go:104-119 fails open on http.StatusTooManyRequests: when the registry&amp;#39;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.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-45781</guid>
    </item>
    <item>
      <title>GHSA-2v5f-5r6w-p67r — MCP Registry: OCI validator skips ownership check on upstream rate limits</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-2v5f-5r6w-p67r</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/modelcontextprotocol/registry&lt;/p&gt;
&lt;p&gt;# OCI ownership validation fails open on upstream rate limits, allowing attacker to claim arbitrary public OCI images under their own namespace&lt;/p&gt;
&lt;p&gt;Severity: Low (re-scored post-triage; see Maintainer triage note below)
Affected: `modelcontextprotocol/registry` main branch at commit `fe0cb3b` (current HEAD as of 2026-05-09).
Live deployment: `https://registry.modelcontextprotocol.io` (per repo README).
Route: GitHub private security advisory (per repo SECURITY.md).&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;## Title&lt;/p&gt;
&lt;p&gt;OCI ownership validation skips label-match check when upstream OCI registry returns HTTP 429, letting any authenticated publisher bind their `io.github.&amp;lt;user&amp;gt;/*` namespace to OCI images they do not control.&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;`internal/validators/registries/oci.go:104-119` fails open on `http.StatusTooManyRequests`: when the
registry&amp;#39;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.&lt;/p&gt;
&lt;p&gt;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 sour…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/modelcontextprotocol/registry&lt;/p&gt;
&lt;p&gt;# OCI ownership validation fails open on upstream rate limits, allowing attacker to claim arbitrary public OCI images under their own namespace&lt;/p&gt;
&lt;p&gt;Severity: Low (re-scored post-triage; see Maintainer triage note below)
Affected: `modelcontextprotocol/registry` main branch at commit `fe0cb3b` (current HEAD as of 2026-05-09).
Live deployment: `https://registry.modelcontextprotocol.io` (per repo README).
Route: GitHub private security advisory (per repo SECURITY.md).&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;## Title&lt;/p&gt;
&lt;p&gt;OCI ownership validation skips label-match check when upstream OCI registry returns HTTP 429, letting any authenticated publisher bind their `io.github.&amp;lt;user&amp;gt;/*` namespace to OCI images they do not control.&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;`internal/validators/registries/oci.go:104-119` fails open on `http.StatusTooManyRequests`: when the
registry&amp;#39;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.&lt;/p&gt;
&lt;p&gt;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 sour…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-2v5f-5r6w-p67r</guid>
    </item>
  </channel>
</rss>
