🔍 CVE-2026-44428

4.7
CVSS Score
MEDIUM
2026-05-14
2026-10-26 14:10
✅ 완료

🇰🇷 한글 설명

MCP Registry의 OIDC 인증에서 클라이언트와 서버가 고정된 audience 문자열로만 검증되어, 한 registry 인스턴스에서 발급받은 토큰이 다른 registry 인스턴스에서도 그대로 수용되는 취약점입니다. 이로 인해 attackers가 정당한 토큰을 탈취하면 다른 registry 인스턴스에 접근할 수 있으며, 공개 배포 권한을 얻을 수 있습니다.

💡 쉬운 설명

MCP Registry(앱 스토어 같은 서버 목록)에서 인증 확인이 부실해서, 한 곳에서 얻은 접근 권한이 다른 곳에서도 작동합니다. 공격자가 이를 악용하면 자신이 소유하지 않은 서버를 배포할 수 있습니다.

🇺🇸 원문 (English)

The MCP Registry provides MCP clients with a list of MCP servers, like an app store for MCP servers. Prior to 1.7.6, the client-side and server-side GitHub OIDC flow is bound only to a global audience string, not to the specific registry instance being targeted. On the client side, the publisher always appends audience=mcp-registry when requesting the GitHub Actions ID token, regardless of the selected --registry URL. On the server side, the exchange endpoint validates only that same fixed audience and then derives publish permissions directly from repository_owner. As a result, a token legitimately obtained while interacting with one registry deployment remains acceptable to any other deployment that shares the same code and audience string. This vulnerability is fixed in 1.7.6.

📍 영향받는 시스템

MCP Registry 1.7.5 이하 버전

⚔️ 공격 벡터

GitHub Actions OIDC 토큰을 탈취한 후, audience 검증이 느슨한 다른 registry 배포 인스턴스에 재사용하여 unauthorized publish 수행

🛡️ 대응 방법

MCP Registry를 1.7.6 이상으로 업그레이드하고, registry-specific audience 바인딩 및 audience 검증 로직 적용 확인

🔧 검증 코드

설치된 @mcp/registry 버전이 1.7.6 이상이면 'Patched', 그 이하면 'Vulnerable' 출력

Shell / Script
npm list @mcp/registry 2>/dev/null | grep @mcp/registry | awk '{print $2}' | grep -E '^1\.(7\.[6-9]|[8-9]|[1-9][0-9])' && echo 'Patched' || echo 'Vulnerable'

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Git