원문 캡처 · forever.security
원문 캡처 · forever.security

Forever Security는 Cursor, GitHub Copilot, Codex, VS Code, Claude Desktop에 내장된 브라우저를 조사해 코드 실행, 로컬 파일 유출, 주소 표시줄 위조 등 취약점 5건을 발견했다고 밝혔다. 공개 당시 Codex와 VS Code의 취약점은 패치되지 않아 해당 도구 사용자는 여전히 노출돼 있다고 설명했다.

조사팀은 공통 원인을 ‘EMBRACE’라고 이름 붙였다. AI 에이전트가 조작하는 브라우저를 일반 브라우저처럼 신뢰하거나, 기존 브라우저의 보안 규칙이 내장 환경에서도 그대로 적용된다고 여기는 데서 문제가 생긴다는 주장이다.

Cursor에서는 웹페이지가 에이전트에게 명령을 전달해 호스트 컴퓨터에서 코드를 실행하게 할 수 있었다. 보고서는 빈 프로젝트에서 페이지가 선택한 앱이 실행됐다고 설명하면서, 이 동작은 모델에 따라 달라 매번 발생하지는 않는다고 덧붙였다. 취약점은 9월 10일 Cursor에 전달됐고, 10월 1일 조용히 수정됐다고 한다.

GitHub Copilot의 브라우저 미리보기에서는 페이지가 실제 위치와 다른 주소를 앱에 표시하게 할 수 있었다. 주소 표시줄과 에이전트의 탭 목록 모두 github.com으로 표시될 수 있어 피싱 페이지를 신뢰하게 만들 위험이 있었다. GitHub는 조사팀이 제보하기 전에 Copilot 1.1.29에서 이를 수정했다. 조사팀은 해당 취약점을 Copilot 1.1.27에서 확인했다고 밝혔다.

Claude Desktop과 VS Code에서는 로컬 페이지가 웹 워커를 통해 프로젝트 폴더 밖의 파일에 접근할 수 있었다. Codex에는 이 제한 자체가 없어 로컬 페이지가 컴퓨터의 파일을 직접 읽을 수 있었다고 한다. 조사팀은 macOS의 폴더 색인 파일로 디스크를 파악한 뒤 SSH 키, .env 파일, npm 토큰, hosts 파일 등을 읽고 외부로 전송했다고 밝혔다.

이들 취약점은 7월 23일 Anthropic에 전달됐으며, Anthropic은 처음에는 ‘Workspace Trust’ 보안 경계에 해당한다며 유효하지 않다고 판단했다. 다음 날 Noma Security가 별도로 제보한 내용은 유효한 취약점으로 받아들여졌다. 조사팀은 7월 27일 OpenAI에 알렸지만 답변을 받지 못했고, 9월 10일 Microsoft는 같은 보안 경계를 이유로 VS Code 취약점 수정을 거부했다고 전했다. 공개 당시 Codex와 VS Code 문제는 해결되지 않은 상태였다.

Forever Security는 조직 보안 담당자에게 해당 도구가 관리하는 기기에 설치돼 있는지 확인하고, 내장 브라우저를 신뢰할 수 없는 웹페이지와 로컬 파일을 처리하는 엔드포인트 공격 표면으로 다루라고 권고했다. 사용자의 클릭이나 승인 절차만을 방어책으로 삼아서는 안 된다고도 밝혔다.

기술 분석과 재현 절차에서 전체 조사 내용을 확인할 수 있다. 공개 당시 각 취약점의 처리 상황은 공개 현황에 정리돼 있다.