Trang chủCông nghệLỗ hổng GitHub.dev cho phép kẻ tấn công đánh cắp mã thông...

Lỗ hổng GitHub.dev cho phép kẻ tấn công đánh cắp mã thông báo OAuth chỉ bằng một cú nhấp chuột

Mọi nhà phát triển đã từng nhấn phím dấu chấm trên kho GitHub, khởi chạy trình soạn thảo VS Code dựa trên trình duyệt tiện lợi được gọi là GitHub.devđã vô tình chấp nhận một món hời. Để đổi lấy môi trường mã hóa nhẹ, GitHub âm thầm chuyển mã thông báo OAuth cho phiên, mã này cấp quyền truy cập đọc và ghi vào mọi kho lưu trữ mà người dùng có thể tiếp cận, không chỉ kho lưu trữ mà họ đã mở.

Nhà nghiên cứu bảo mật Ammar Askar hiện đã cho thấy một liên kết độc hại có thể đánh cắp toàn bộ mã thông báo đó như thế nào. các khai thác bằng chứng khái niệmđược xuất bản vào ngày 2 tháng 6 năm 2026, kết hợp một số hành vi của VS Code để cài đặt một tiện ích mở rộng lừa đảo bên trong GitHub.dev, âm thầm lấy cắp thông tin xác thực OAuth và liệt kê mọi kho lưu trữ riêng tư mà nạn nhân có thể truy cập.

Microsoft đã thừa nhận lỗ hổng này và cho biết họ đang tìm cách khắc phục. Theo Alexandru Dima, giám đốc kỹ thuật phần mềm đối tác của công ty, lỗ hổng này không ảnh hưởng đến VS Code Desktop.

Cuộc tấn công hoạt động như thế nào

Việc khai thác bắt đầu bằng một liên kết GitHub.dev được tạo thủ công trỏ đến một kho lưu trữ chứa tệp Notebook Jupyter độc hại. Khi nạn nhân nhấp vào, GitHub.com sẽ tự động ĐĂNG mã thông báo OAuth vào phiên GitHub.dev. Mã thông báo đó không nằm trong phạm vi kho lưu trữ cụ thể, nó mang đầy đủ các đặc quyền trên mọi kho lưu trữ mà người dùng có quyền truy cập, bao gồm cả các kho lưu trữ riêng tư.

tnw newsletter

💜 của công nghệ EU

Những tin đồn mới nhất từ bối cảnh công nghệ EU, câu chuyện từ người sáng lập thông thái Boris của chúng tôi và một số tác phẩm nghệ thuật AI đáng nghi vấn. Nó miễn phí hàng tuần trong hộp thư đến của bạn. Đăng ký ngay bây giờ!

Bên trong sổ ghi chép, một đoạn mã HTML ẩn có trình xử lý lỗi sẽ thực thi JavaScript do kẻ tấn công kiểm soát trong iframe chế độ xem web được đóng hộp cát. Mã VS sử dụng những thứ này lượt xem web để hiển thị bản xem trước Markdown, chỉnh sửa sổ ghi chép và hiển thị nội dung phong phú khác. Lỗ hổng nghiêm trọng là chế độ xem web có thể mô phỏng các sự kiện bàn phím, cụ thể là các sự kiện nhấn phím, trong cửa sổ trình chỉnh sửa chính thông qua API postMessage.

Tải trọng chờ vài giây để Mã VS hiển thị thông báo nhắc cài đặt tiện ích mở rộng, sau đó kích hoạt tổ hợp phím Ctrl+Shift+A mô phỏng. Phím tắt đó tương ứng với lệnh “Chấp nhận hành động chính thông báo”, lệnh này âm thầm phê duyệt việc cài đặt tiện ích mở rộng do kẻ tấn công kiểm soát. Sau đó, tiện ích mở rộng lấy mã thông báo GitHub OAuth và gọi API GitHub để liệt kê mọi kho lưu trữ riêng tư mà nạn nhân có thể truy cập.

Bỏ qua kiểm tra độ tin cậy

Thông thường, việc cài đặt tiện ích mở rộng VS Code sẽ kích hoạt lời nhắc tin cậy của nhà xuất bản. Nhưng việc khai thác hoàn toàn tránh được điều này bằng cách sử dụng một tính năng gọi là tiện ích mở rộng không gian làm việc cục bộ. Bất kỳ tiện ích mở rộng nào được đặt trong thư mục .vscode/extensions của kho lưu trữ đều có thể được cài đặt mà không cần hiển thị hộp thoại tin cậy, vì VS Code coi nó như một phần của không gian làm việc chứ không phải là bản tải xuống của bên thứ ba.

Kẻ tấn công cũng có thể thêm các tổ hợp phím tùy chỉnh thông qua package.json của tiện ích mở rộng, ánh xạ các lệnh VS Code tùy ý vào các phím tắt. Vì việc khai thác có thể kích hoạt các lối tắt đó từ chế độ xem web một cách đáng tin cậy nên nó có thể xâu chuỗi hầu như mọi chuỗi hành động của trình chỉnh sửa lại với nhau. “Chúng tôi chỉ có thể thêm liên kết phím cho bất kỳ lệnh VS Code nào mà chúng tôi muốn, chẳng hạn như cài đặt tiện ích mở rộng trong khi bỏ qua kiểm tra nhà xuất bản đáng tin cậy,” Askar đã viết.

Tại sao nhà nghiên cứu lại công khai ngay lập tức

Askar đã không tuân theo quy trình phối hợp công bố thông tin thông thường. Anh ta nói với The Register rằng trải nghiệm trước đây với Trung tâm phản hồi bảo mật của Microsoft đã khiến anh ấy chán nản trong quá trình này. Theo Askar, MSRC đã âm thầm vá một lỗi VS Code mà anh ấy đã báo cáo mà không ghi nhận công sức của anh ấy và phân loại nó là không có tác động bảo mật.

Anh ta đã thông báo trước cho người liên hệ bảo mật của GitHub khoảng một giờ trước khi xuất bản toàn bộ chi tiết khai thác và mã chứng minh khái niệm. Quyết định này phản ánh sự thất vọng rộng rãi hơn của các nhà nghiên cứu đối với cách xử lý lỗ hổng của Microsoft, gần đây đã leo thang khi công ty đe dọa một nhà nghiên cứu bảo mật khác, được gọi là Nightmare Eclipse, sẽ bị truy tố hình sự vì tiết lộ công khai các lỗ hổng zero-day của Windows.

Tiết lộ này cũng xuất hiện vài tuần sau một sự cố riêng trong đó tin tặc đã xâm phạm chính GitHub thông qua tiện ích mở rộng VS Code bị nhiễm độc, đánh cắp khoảng 3.800 kho lưu trữ nội bộ. Cuộc tấn công đó, được cho là do một nhóm được theo dõi là TeamPCP thực hiện, đã chứng minh rằng các tiện ích mở rộng độc hại không phải là rủi ro về mặt lý thuyết mà là một mối đe dọa tích cực trong chuỗi cung ứng của nhà phát triển.

Phạm vi rủi ro

Lỗ hổng này đặc biệt nguy hiểm vì GitHub.dev không triển khai mã thông báo CSRF, nghĩa là bất kỳ liên kết nào trên internet đều có thể chuyển hướng người dùng vào luồng tấn công. Một cú nhấp chuột là đủ. Không có lời nhắc bổ sung, không có đối thoại tin cậy, không có cảnh báo rõ ràng.

Sau khi mã thông báo bị lấy cắp, kẻ tấn công có quyền truy cập kho lưu trữ giống như nạn nhân. Điều đó bao gồm việc đọc mã nguồn độc quyền, đưa các cửa hậu vào các dự án riêng tư hoặc chuyển hướng sang các hệ thống khác bằng cách thu thập các bí mật được lưu trữ trong các tệp cấu hình. Đối với các nhà phát triển làm việc trên cơ sở hạ tầng doanh nghiệp hoặc nguồn mở, bán kính vụ nổ có thể rất đáng kể.

Nghiên cứu gần đây đã chỉ ra rằng khi các lỗ hổng trong công cụ dành cho nhà phát triển được vá một cách lặng lẽ mà không có lời khuyên công khai hoặc chỉ định CVE, người dùng trên các phiên bản cũ hơn vẫn bị lộ mà không hề hay biết. Việc Microsoft gán CVE cho lỗ hổng này và đưa ra lời khuyên chính thức sẽ là một bài kiểm tra về bài học rút ra từ những đợt trước đó.

Nhà phát triển nên làm gì bây giờ

Cho đến khi Microsoft đưa ra bản sửa lỗi, các nhà phát triển nên thận trọng khi nhấp vào liên kết GitHub.dev, đặc biệt là những liên kết trỏ đến các kho lưu trữ không quen thuộc. Việc xem lại thư mục .vscode/extensions của bất kỳ kho lưu trữ nào trước khi mở nó trong trình chỉnh sửa dựa trên trình duyệt là một biện pháp phòng ngừa hợp lý, cũng như việc kiểm tra các quyền của mã thông báo OAuth trong GitHub cài đặt mã thông báo truy cập cá nhân.

Các tổ chức dựa vào GitHub để lấy mã độc quyền có thể muốn xem xét việc hạn chế quyền truy cập GitHub.dev cho đến khi lỗ hổng được giải quyết. Phòng thí nghiệm bảo mật của GitHub, được ra mắt để giúp xác định các lỗ hổng trong mã nguồn mở, vẫn chưa bình luận về lỗ hổng này.

Câu hỏi sâu hơn là kiến trúc. Nếu trình chỉnh sửa dựa trên trình duyệt nhận được mã thông báo OAuth không giới hạn theo mặc định và nếu tiện ích mở rộng trong không gian làm việc có thể vượt qua kiểm tra độ tin cậy thì bề mặt tấn công sẽ được đưa vào thiết kế. Việc khắc phục vấn đề chuỗi khai thác cụ thể, nhưng khoản đầu tư ngày càng tăng vào bảo mật công cụ dành cho nhà phát triển, chẳng hạn như Series A trị giá 18 triệu đô la gần đây do công ty bảo mật API Escape huy động, cho thấy ngành công nghiệp nhận ra rằng vấn đề này nghiêm trọng hơn bất kỳ lỗi nào.



Nguồn The Next Web

BÀI VIẾT LIÊN QUAN

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây

Bài viết mới

- Quảng cáo -

Bình luận mới