VSCode 버그로 GitHub 토큰 탈취 가능

원제: 1-Click GitHub Token Stealing via a VSCode Bug

왜 중요한가

개발자들이 널리 사용하는 VSCode와 GitHub 생태계의 보안 취약점으로 대규모 소스코드 유출 위험 존재

보안 연구자가 VSCode의 웹뷰 보안 모델 취약점을 발견했다. 악성 링크를 클릭하면 공격자가 GitHub 토큰을 탈취할 수 있으며, 이를 통해 사용자의 모든 저장소에 읽기/쓰기 권한을 얻을 수 있다. GitHub.dev의 OAuth 토큰 처리 과정에서 발생하는 보안 허점이 원인이다.

보안 연구자 Ammar Askar가 VSCode의 웹뷰 보안 모델에서 GitHub 토큰을 탈취할 수 있는 취약점을 발견했다고 발표했다. 이 공격은 GitHub.dev 서비스를 통해 이뤄진다. GitHub.dev는 브라우저에서 실행되는 경량 VSCode 버전으로, 사용자가 github.com URL을 github.dev로 변경하거나 메뉴 아이템을 클릭하면 접근할 수 있다. 이 서비스는 GitHub가 OAuth 토큰을 POST 방식으로 전송해 GitHub와 상호작용할 수 있게 한다. 문제는 이 토큰이 특정 저장소로 제한되지 않고 사용자가 접근할 수 있는 모든 저장소에 대한 전체 권한을 갖는다는 점이다. VSCode는 보안을 위해 웹뷰를 별도 origin의 iframe으로 격리하는 샌드박싱을 구현하고 있다. 마크다운 미리보기나 Jupyter 노트북 편집 시 vscode-webview:// origin을 사용해 메인 electron 창(vscode-file://)과 분리한다. 그러나 이번 취약점은 이러한 보안 모델을 우회할 수 있는 방법을 제시한다.

출처

blog.ammaraskar.com — 원문 읽기 →