그는 "MSRC 프로세스를 다시 겪을 생각이 전혀 없다"고 분명히 밝혔습니다 . 앞서 발견한 버그는 처음에 GitHub의 HackerOne 프로그램에 제보되었는데, HackerOne 측은 담당 범위가 아니라며 명시적으로 MSRC로 가라고 안내했습니다. 이 관료적인 넘기기로 인해 발견은 보상도 인정도 받지 못했습니다
.
이 익스플로잇은 세 가지 취약점을 매끄럽게 연결하여 github.dev의 모든 보안 경계를 우회합니다.
VS Code의 웹뷰는 Jupyter 노트북, Markdown 미리보기 등을 렌더링하는 격리된 샌드박스입니다. 하지만 내부에서 키보드 단축키를 사용할 수 있도록, 편집기는 샌드박스 처리된 웹뷰에서 발생한 키 이벤트를 메인 편집기 프로세스로 전달합니다 .
공격자의 저장소에 포함된 악성 Jupyter 노트북이 샌드박스 웹뷰에서 가짜 키보드 이벤트(Ctrl+Shift+A, Ctrl+F1)를 생성해 VS Code 메인 창으로 직접 전달합니다 . 이 키 입력은 조용히 "확장 프로그램 설치" 명령을 실행시키고, 일반적으로는 신뢰할 수 없는 확장 프로그램을 차단하는 게시자 검증 신뢰 대화상자를 우회합니다
.
공격자의 저장소는 .vscode/extensions 폴더에 사전 패키징된 VS Code 확장 프로그램을 포함하고 있습니다. github.dev는 작업 공간과 함께 제공되는 확장 프로그램을 암묵적으로 신뢰하기 때문에, 악성 확장 프로그램은 그 어떤 사용자 권한 확인도 없이 설치됩니다 .
실행된 악성 확장 프로그램은 github.dev의 런타임 환경에 대한 완전한 접근 권한을 얻습니다. 이 환경에는 GitHub 저장소가 열릴 때 github.com이 조용히 POST 방식으로 전달하는 GitHub OAuth 토큰이 들어 있습니다. 결정적으로, 이 토큰은 현재 열려 있는 저장소만으로 범위가 제한되지 않고 사용자의 전체 접근 권한을 그대로 가지고 있습니다 . 확장 프로그램은 토큰을 추출하고, GitHub API에 쿼리하여 피해자의 비공개 저장소 목록을 조회한 뒤, 토큰과 저장소 메타데이터를 공격자에게 유출시킵니다
.
6월 3일, 마이크로소프트는 브라우저 기반 노트북을 열 때 신뢰 확인 단계를 추가하고, 확장 프로그램 설치 명령이 임의의 호출자 정보를 받아들이지 못하도록 차단하는 서버 측 패치를 배포했습니다 . 6월 4일에는 추가로 웹뷰 이벤트 처리에 대한 제한이 적용되었습니다
.
또한 마이크로소프트는 이 문제가 VS Code 데스크톱에는 영향을 미치지 않는다고 밝혔습니다 . 그러나 워크스페이스 확장 프로그램을 충분한 검증 없이 신뢰하는 근본적인 패턴은, 로컬에서 신뢰할 수 없는 저장소를 여는 모든 VS Code 사용자에게 우려를 남깁니다.
이 익스플로잇 체인은 세 가지 이유로 주목할 만합니다.
첫째, 공격 표면이 URL입니다. 피해자는 파일을 다운로드하거나, 터미널을 열거나, 권한을 승인할 필요가 없습니다. github.dev로 향하는 브라우저 링크 하나가 유일한 전제 조건입니다.
둘째, 토큰의 권한 범위가 지나치게 넓습니다. github.com이 github.dev에 전달하는 OAuth 토큰은 현재 보고 있는 저장소로 범위가 제한되지 않습니다. 사용자의 전체 GitHub 권한을 탑재하고 있기 때문에, 공개 오픈소스 프로젝트에서 작업하는 개발자의 권한을 탈취한 공격자는 그 개발자가 재직 중인 회사의 비공개 저장소 자격 증명까지 함께 손에 넣게 됩니다 .
셋째, 워크스페이스 신뢰가 역전되었습니다. 로컬 개발을 원활하게 만드는 이 기능은 프로젝트와 함께 제공되는 확장 프로그램을 신뢰함으로써, 바로 그 기제를 통해 악성 페이로드에 자동 실행 권한을 부여하는 통로가 되었습니다.
이와 동시에, 연구원들은 OpenClaw AI 에이전트 프레임워크에서 공격자가 허용 목록에 등록된 사용자를 사칭하여 여러 메시징 플랫폼에서 AI 에이전트 접근 권한을 가로챌 수 있는 5개의 제로데이 취약점을 공개했습니다 .
근본 원인은 아키텍처에 있습니다. OpenClaw는 Telegram, Slack, Discord, WhatsApp 등 15개의 서로 다른 채널 어댑터를 지원하며, 각 어댑터는 허용 목록 인증과 웹훅 검증을 독립적으로 구현합니다 . 허용 목록에 사용되는 보안 핵심 식별자(예: 사람이 읽을 수 있는 표시 이름)는 플랫폼 수준에서 변경 가능하며, 여러 어댑터에서 안정적인 사용자 ID로 일관성 없이 처리됩니다
.
중앙 집중식 정책 시행 계층이 존재하지 않기 때문에 공격자는 다음과 같은 행위를 할 수 있습니다.
2026년 6월 3일 arXiv에 게재된 보안 분석은 실행 정책, 게이트웨이, 채널, 샌드박스, 브라우저, 플러그인, 프롬프트 등 여러 아키텍처 계층에서 취약점이 발견되었으며, 지배적인 구조적 패턴은 통합된 정책 경계가 아닌 계층별, 호출 지점별 신뢰 시행이라고 밝혔습니다 . 또한 이러한 개별적인 아키텍처 취약점들이 결합되어 완전한 비인증 원격 코드 실행(RCE) 경로를 구성할 수 있다고 분석했습니다
.
Comments
0 comments