무슨 일이 있었나
GitHub의 공식 MCP Server 버전 0.22.0부터 1.1.1까지는 --lockdown-mode를 사용한 HTTP 모드 실행 시 크로스-테넌트 인증 결함을 포함하고 있습니다. RepoAccessCache는 첫 번째 사용자의 자격증명으로 초기화되는 프로세스 전역 싱글톤입니다. 이후 사용자들은 동일한 캐시와 GraphQL 클라이언트를 공유하므로 저장소 접근 제어를 우회하며, 잠재적으로 비공개 저장소에 대한 무단 접근을 허용할 수 있습니다.
왜 중요한가
GitHub의 공식 MCP 서버는 AI 코딩 에이전트와 GitHub 저장소 간의 주요 연결 고리입니다. MCP 서버의 크로스-테넌트 접근은 한 사용자를 대신하여 작동하는 AI 에이전트가 다른 사용자에게 속한 비공개 저장소에 의도치 않게 또는 악의적으로 접근할 수 있음을 의미하며, 소스 코드, 저장소에 저장된 시크릿, 독점 AI 학습 데이터 또는 모델 구성이 노출될 수 있습니다.
공격 경로
--lockdown-mode를 사용한 HTTP 모드로 실행할 때, RepoAccessCache는 첫 번째 인증된 사용자의 GraphQL 클라이언트를 사용하여 프로세스 전역 싱글톤으로 초기화됩니다. 다른 사용자로부터의 모든 후속 요청은 동일한 클라이언트를 재사용하므로, 모든 사용자가 첫 번째 인증된 사용자에게만 인증된 저장소에 접근할 수 있습니다 — 크로스-테넌트 인증 우회입니다.
영향받는 시스템
github-mcp-server 0.22.0 – 1.1.1 (1.1.2에서 수정됨)
완화 방안
github-mcp-server 1.1.2로 업그레이드하세요. 권고사항: https://github.com/github/github-mcp-server/security/advisories/GHSA-pjp5-fpmr-3349