Official MCP Registry v1.8.1 blocks github.io domains after an organization namespace takeover path
The official MCP Registry released v1.8.1, rejecting github.io domains in its DNS and HTTP token-exchange verification paths. Before the fix, anyone able to publish to an organization GitHub Pages site could obtain publish rights over that organization's entire registry namespace. The fix was committed, released and promoted to production inside about 65 minutes, and carries no CVE or GHSA record.
The official MCP Registry released v1.8.1 on 2026-08-06, blocking
github.io domains in the DNS and HTTP token-exchange paths used to
verify namespace ownership.
The registry grants publish rights two ways. The GitHub token method
grants rights over io.github.<org>/* to organization owners only. The
DNS and HTTP methods grant rights over a reversed domain to anyone who
can prove control of that domain, and before this release neither method
special-cased github.io or carried a blocked-domain list. Because
GitHub Pages serves arbitrary files from an organization repository at
<org>.github.io, anyone with write access to that repository could
serve an auth key at /.well-known/mcp-registry-auth, exchange it for a
token, and publish under the organization's namespace, bypassing the
owner-only restriction the GitHub token method enforces.
The fix was applied in ValidateDomainAndTimestamp, the function shared
by both exchanges, rejecting github.io and its subdomains
case-insensitively. The timeline was tight: the fix commit landed at
22:38:34Z, v1.8.1 was published at 23:35:18Z, and production was
promoted to 1.8.1 at 23:43:14Z, about 65 minutes end to end.
No CVE was assigned and no GitHub Security Advisory was published. The registry repository's advisories page lists five records, the newest dated 2026-05-12, none covering this issue. The only public account is the pull request and the release notes.
How was this verified, and what are the sources?
Published · last verified · confidence 1.00.
- modelcontextprotocol/registry pull request #1506, "fix(auth): reject github.io domains in DNS/HTTP token exchange (org namespace takeover)" - describes serving an auth key at /.well-known/mcp-registry-auth on an <org>.github.io host, exchanging it for a JWT and publishing under the organization namespace; the fix is applied in the shared ValidateDomainAndTimestamp function used by both the DNS and HTTP exchanges, blocking github.io and its subdomains case-insensitively; merged by rdimitrov on 2026-08-06 - accessed
- modelcontextprotocol/registry release page for v1.8.1 - published 2026-08-06T23:35:18Z, listing PR #1506 alongside the removal of Tadas as a working group lead (#1493) and a golang.org/x/text bump for GO-2026-5970 - accessed
- modelcontextprotocol/registry main-branch commit list - shows the #1506 fix commit at 2026-08-06T22:38:34Z and "chore(deploy): promote production to 1.8.1" (#1510) at 2026-08-06T23:43:14Z, confirming the fix is deployed - accessed
- modelcontextprotocol/registry security advisories page - lists five advisories, the newest dated 2026-05-12, with no advisory covering github.io or namespace takeover - accessed