무슨 일이 있었나
mcp-remote의 장치 코드 OAuth 흐름은 발견된 엔드포인트 URL에 HTTPS를 적용하지 않고 클라이언트 비밀값을 전송하고 토큰을 수신합니다. 원격 MCP 서버가 루프백이 아닌 http 권한 부여/토큰 엔드포인트를 광고하는 경우, 자격 증명과 결과 토큰이 네트워크를 통해 평문으로 전송되어 경로상의 공격자가 가로챌 수 있습니다.
왜 중요한가
MCP 클라이언트는 에이전트에게 해당 서버 데이터에 대한 접근 권한을 부여하는 OAuth 토큰으로 원격 도구 서버에 인증합니다. 클라이언트 비밀값과 새로 고침 토큰을 평문으로 유출하면 공격자는 MCP 연결의 지속적인 가장이 가능해집니다 — 서버가 에이전트에 노출하는 모든 것에 대한 전체 읽기/쓰기 접근 권한을 얻습니다.
공격 경로
authorizeWithDeviceCode는 발견된 장치 권한 부여 및 토큰 엔드포인트에 HTTPS를 적용하지 않습니다. 이러한 루프백이 아닌 엔드포인트가 http URL인 경우, 경로상의 공격자는 유선으로 전송된 클라이언트 비밀값과 발급된 액세스/새로 고침 토큰을 가로챕니다.
영향받는 시스템
mcp-remote 0.8.0 ~ 0.14.3 (authorizeWithDeviceCode)
완화 방안
mcp-remote를 0.14.3 이후 버전으로 업그레이드하고/또는 OAuth 구성에서 HTTPS 엔드포인트를 적용하세요(VulnCheck 권고; punkpeye/mcp-remote).