dotsagent.io
언어:한국어

GitHub MCP의 악성 에이전트 흐름, 공개 이슈를 통해 비공개 저장소 유출

Invariant Labs는 악성 공개 GitHub 이슈가 GitHub MCP 서버의 에이전트를 조종해 비공개 저장소 데이터를 공개 pull request에 복사하게 만들 수 있음을 보였습니다.

무슨 일이 있었나

2025년 5월 26일, Invariant Labs는 GitHub MCP 서버와 관련된 이른바 유해한 에이전트 흐름을 공개했습니다. 공격자는 공개 저장소에 이슈를 열고 에이전트를 겨냥한 지시를 작성합니다. 에이전트가 나중에 열린 이슈를 읽으면 삽입된 텍스트를 받아들이고 그대로 따릅니다.

에이전트의 토큰이 저장소 소유자의 비공개 저장소에도 접근할 수 있었습니다. 에이전트는 이슈의 지시에 따라 비공개 저장소에서 데이터를 가져와 공개 저장소의 pull request에 게시했고, 누구나 그 내용을 읽을 수 있었습니다.

공격이 성공한 이유

치명적인 세 가지 요소가 한 세션에 모두 있었습니다. 비공개 저장소에 접근할 수 있는 토큰, 공개 이슈의 신뢰할 수 없는 텍스트, 그리고 데이터를 외부로 내보내는 공개 pull request입니다. 각 요소는 따로 보면 흔한 구성입니다. 하지만 이들이 결합되면 누구든 이슈를 열어 토큰이 읽을 수 있는 모든 데이터를 읽을 수 있습니다.

대응 방법

  • 공개 이슈를 읽는 에이전트에는 해당 저장소 하나에만 권한을 부여한 토큰을 사용하세요.
  • 공개 저장소와 비공개 저장소는 서로 다른 에이전트 세션에서 다루세요.
  • 공개 저장소에서 에이전트가 pull request를 열거나 댓글을 달거나 commit하기 전에 승인을 받도록 하세요.
  • 이슈 제목, 본문, 댓글을 신뢰할 수 없는 입력으로 취급하세요.

치명적인 삼박자를 끊으세요최소 권한 인증 정보 사용중요한 작업에는 승인 요구

보안 체크리스트 확인하기 →

출처

  1. invariantlabs.ai/blog/mcp-github-vulnerability