무슨 일이 있었나
GitHub 권고를 통해 2026-10-13 게시(CVSS 9.8, CWE-287/321/798/1188). 게이트웨이는 알려진 JWT_SECRET_KEY와 verify_jwt_token()이 이 키로 서명된 HS256 토큰을 수락하는 반면, get_current_user()는 REQUIRE_USER_IN_DB가 false일 때 토큰 주체를 플랫폼 관리자로 승격시킵니다. NVD REST API를 통해 검증됨.
왜 중요한가
MCP 게이트웨이는 에이전트와 에이전트가 호출하는 도구/데이터 간의 신뢰 경계입니다. 위조된 관리자 토큰은 게이트웨이가 관리하는 모든 MCP 서버 및 리소스에 대한 읽기/쓰기/중단 권한을 부여하여 공격자가 연결된 모든 에이전트가 도달할 수 있는 대상을 재구성할 수 있게 합니다 — 조직의 에이전트 자산에 대한 단일 침해 지점이며, 제작된 세션 경로는 일반적인 자격 증명 철회 통제보다 오래 지속됩니다.
공격 경로
인증 없는 원격 공격자는 mcpgateway/config.py 및 .env.example에 탑재된 공개적으로 알려진 JWT_SECRET_KEY로 HS256 JWT에 서명하고, 주체를 구성된 PLATFORM_ADMIN_EMAIL로 설정합니다. get_current_user()는 DB 계정 없이 관리자 세션을 생성합니다(REQUIRE_USER_IN_DB=false 기본값). 위조된 토큰은 비밀번호 변경, 계정 삭제 및 세션 철회 후에도 유지됩니다.
영향받는 시스템
IBM MCP Context Forge MCP 게이트웨이 < 1.0.2
완화 방안
MCP Context Forge를 1.0.2로 업그레이드하십시오. 배포자는 JWT 비밀 키를 교체하고 플랫폼 관리자 부트스트랩을 비활성화해야 합니다. GHSA-m8rv-5m6m-32ff 참조.