
Lỗ hổng trong Visual Studio Code cho phép chiếm đoạt OAuth token qua github.dev
"A researcher disclosed and then publicly leaked a proof-of-concept exploit affecting Visual Studio Code's github.dev workflow, where a malicious repository could abuse Workspace Recommendations and a Jupyter Notebook webview to auto-install an attacker-controlled extension and steal OAuth tokens. The stolen token could be used to read and modify the victim's public and private GitHub repositories; Microsoft later said the issue was mitigated and no customer action was required."
Lỗ hổng cho phép chiếm đoạt OAuth token, dẫn đến truy cập và chỉnh sửa repository GitHub của nạn nhân.
Có thể gây rò rỉ mã nguồn, mất quyền kiểm soát repository và ảnh hưởng đến quy trình phát triển phần mềm.
Một nhà nghiên cứu bảo mật đã công khai mã khai thác minh họa (proof-of-concept) cho một lỗ hổng trong Visual Studio Code liên quan đến quy trình làm việc trên github.dev. Lỗ hổng này cho phép kẻ tấn công lợi dụng tính năng Workspace Recommendations và Jupyter Notebook Webview để tự động cài đặt extension do kẻ tấn công kiểm soát, từ đó đánh cắp OAuth token của người dùng. Token bị đánh cắp có thể được sử dụng để đọc và chỉnh sửa các repository GitHub công khai hoặc riêng tư mà nạn nhân có quyền truy cập.
Cụ thể, kẻ tấn công cần chỉnh sửa file .vscode/extensions.json trong repository để đề xuất extension độc hại. Khi người dùng mở repository này qua github.dev và truy cập file Jupyter Notebook, một đoạn mã HTML ẩn sẽ kích hoạt JavaScript thực thi thao tác tự động chấp nhận cài extension. Extension này sau đó sẽ truy cập môi trường trình duyệt và đánh cắp OAuth token.
Theo thông tin từ phía nhà cung cấp, lỗ hổng đã được khắc phục và không yêu cầu khách hàng thực hiện hành động bổ sung. Tuy nhiên, các tổ chức nên rà soát lại quyền truy cập OAuth, kiểm tra các extension đã cài đặt và tăng cường kiểm soát các repository được phép sử dụng với github.dev để giảm thiểu rủi ro tương tự trong tương lai.