무슨 일이 있었나
AI 에이전트에 GitLab 작업(프로젝트, 병합 요청, 이슈, 파이프라인, 위키, 릴리스)을 노출하는 MCP 서버인 mcp-gitlab은 job_id 매개변수 처리에서 경로 조회 취약점(CVSS 8.6)을 포함하고 있어 공격자가 의도된 API 경로 접두사를 벗어나 GitLab API 호출을 다른 곳으로 리다이렉션할 수 있습니다.
왜 중요한가
mcp-gitlab은 코딩 에이전트(Claude Code, Cursor 등)가 GitLab과 상호작용하도록 하는 데 사용되는 인기 있는 GitLab MCP 서버입니다. 서버의 저장된 GitLab 자격 증명으로 발급된 API 호출을 리다이렉션하면 GitLab 토큰/세션 데이터를 공격자 제어 엔드포인트로 유출시키거나 CI/CD 파이프라인 데이터를 조작하는 데 사용될 수 있으며, MCP 서버가 일반적으로 AI 에이전트를 대신하여 권한 있는 토큰을 보유하고 있다는 점을 감안할 때 의미 있는 위험입니다.
공격 경로
공격자는 제작된 job_id 값(예: ../../../user 시퀀스 포함)을 build/index.js에 제공하여 의도된 경로 접두사를 벗어나므로 MCP 서버가 발급한 GitLab API 요청이 의도된 GitLab job 리소스 대신 임의의 공격자 영향 엔드포인트로 리다이렉션됩니다.
영향받는 시스템
mcp-gitlab(@zereight/gitlab-mcp npm 패키지)
완화 방안
@zereight/mcp-gitlab의 패치된 버전으로 업그레이드하고, GitLab API 요청 경로를 구성하기 전에 서버 측에서 job_id 경로 세그먼트를 검증/정제합니다.