MCP WebSocket은 루프백 인터페이스(127.0.0.1)에서 오는 모든 트래픽을 '신뢰할 수 있는' 것으로 간주했습니다. 이 서버는 요청이 실제 합법적인 에이전트에서 왔는지, 아니면 에이전트가 렌더링한 공격자 제어 웹 콘텐츠에서 왔는지 검증하지 않았습니다. 에이전트 자체가 로컬에서 실행되기 때문에, 에이전트가 불러온 어떤 웹페이지든 MCP 서비스가 신뢰하는 로컬 소스에서 온 것처럼 위장한 WebSocket 메시지를 보낼 수 있었습니다.
MCP WebSocket 엔드포인트에는 인증, 세션 토큰, 출처(Origin) 검사 등이 전혀 없었습니다. 따라서 로컬에서 실행되는 모든 프로세스 또는 에이전트가 렌더링한 웹페이지 안에서 실행되는 모든 스크립트가 자격 증명 없이 WebSocket에 접근해 명령을 보낼 수 있었습니다. 서비스 입장에서는 합법적인 에이전트의 도구 호출과 공격자의 악성 명령을 구별할 방법이 전혀 없었던 것입니다.
MCP 서비스는 WebSocket을 통해 수신된 도구 명령을 맹목적으로 실행했습니다. 샌드박싱, 기능 검사, 사용자 확인 절차 없이 임의의 프로세스 생성이 가능했습니다. 공격자의 콘텐츠가 WebSocket에 도달하기만 하면, 호스트에서 어떤 명령이든 실행하도록 서비스에 지시할 수 있었습니다.
이 세 가지 약점이 결합되면서, 악성 웹페이지는 AI 에이전트의 브라우징 엔진을 통해 MCP WebSocket에 접속하고, 조작된 도구 명령을 보내 사용자의 추가 클릭 한 번 없이 임의 코드를 실행할 수 있게 되었습니다.
이 취약점은 마이크로소프트의 오픈소스 멀티 에이전트 프레임워크인 AutoGen의 프로토타이핑 UI 도구인 AutoGen Studio의 개발 브랜치에서만 존재했습니다. 이는 실제 PyPI 릴리스에 포함된 적이 없습니다
. 마이크로소프트가 마이크로소프트 보안 대응 센터(MSRC)를 통해 이 문제를 AutoGen 유지관리자에게 보고한 후, 개발 브랜치에 수정 사항이 적용되었습니다
. 사용자는 패치를 적용하기 위해 AutoGen Studio를 최신 버전으로 업데이트해야 합니다
. 현재까지 이 문제에 대한 CVE 번호는 보고되지 않았습니다.
구체적인 취약점을 넘어, 마이크로소프트는 AutoJack이 웹 브라우징과 로컬 도구 접근을 결합한 모든 에이전틱 AI 프레임워크의 근본적인 아키텍처 위험을 드러낸다고 강조합니다. 브라우저 샌드박스는 본래 웹 콘텐츠를 운영체제로부터 격리하도록 설계되었습니다. 하지만 신뢰 경계 내부에 위치한 AI 에이전트가 렌더링한 콘텐츠에 따라 행동하면서, 열린 웹과 특권을 가진 로컬 작업 사이에 다리가 만들어지는 셈입니다
.
마이크로소프트는 에이전틱 AI 프레임워크가 더 이상 로컬호스트를 안전한 암묵적 신뢰 구역으로 취급해서는 안 된다고 경고하며, 다음과 같은 조치를 권장합니다:
로컬호스트는 한때 보안 경계였습니다. 하지만 AI 에이전트가 열린 웹을 탐색하는 시대에, 로컬호스트는 이제 하나의 공격 표면이 되었습니다.
Comments
0 comments