무슨 일이 있었나
MCP OAuth 로그인 흐름은 서버가 자체적으로 광고하는 보호 리소스 메타데이터를 RFC 8707 리소스 표시자로 신뢰하고, 클라이언트가 의도하지 않은 리소스에 범위가 지정된 토큰을 발급/수신합니다. 표시자가 구성된 서버 URL에 대해 검증되지 않기 때문에, 악성 MCP 서버는 동일한 인가 서버에서 다른 리소스에 대한 베어러 토큰을 얻고 이를 재생할 수 있습니다.
왜 중요한가
MCP 서버는 AI 에이전트 및 코딩 도구에 의해 일상적으로 추가되며, 사용자 대신 장기 유효 OAuth 토큰을 얻습니다. 토큰 혼동 결함으로 악성 MCP 서버가 다른 리소스에 의도된 자격 증명을 유출할 수 있어, 사용자의 다른 MCP 엔드포인트/AI 서비스에 대한 승인되지 않은 액세스가 가능해집니다.
공격 경로
두 구현 모두 서버 제공 보호 리소스 메타데이터 / well-known 메타데이터를 RFC 8707 리소스 표시자로 사용하면서 구성된 서버 URL과 일치하는지 확인하지 않습니다. 악성 MCP 서버는 다른 리소스(또는 다른 MCP 서버)를 리소스 표시자로 선언하여, 인가 서버가 해당 대상 리소스에 대한 베어러 토큰을 발급하도록 유도하고, 공격자는 도난된 토큰을 다른 리소스에 재생합니다.
영향받는 시스템
ChatCLI < v1.215.2 (CVE-2026-123271); Mark3labs mcp-go < v1.2.1 (CVE-2026-123272)
완화 방안
ChatCLI를 >=v1.215.2 (GHSA-95vg-3r9c-2v5q) 및 Mark3labs mcp-go를 >=v1.2.1 (GHSA-xf6j-693p-wqxx)로 업그레이드. 클라이언트 OAuth 흐름이 예상 리소스 표시자를 구성된 서버 URL에 고정하는지 확인하세요.