Trong bản vá hằng tháng ngày 13/10, Microsoft đã sửa một lỗ hổng thực thi mã từ xa liên quan đến Copilot, mang mã CVE-2026-103572, ảnh hưởng đến Visual Studio (gồm 2026, 2022 và các phiên bản cũ hơn) cùng SQL Server Management Studio (SSMS). Người phát hiện là nhà nghiên cứu bảo mật Johann Rehberger, và ngay trong ngày ông đã công bố chi tiết kỹ thuật trên blog cá nhân Embrace The Red.
Hai sản phẩm này dùng chung một thư viện lõi là Microsoft.VisualStudio.Copilot.Core.dll. Lỗ hổng nằm ở đây, nên một chỗ hỏng có thể đánh trúng cả hai sản phẩm cùng lúc.
Một dấu chấm qua mặt khâu kiểm tra như thế nào
Trong IDE, Copilot có thể ghi tệp thay người dùng, nhưng các cấu hình như .mcp.json hay tệp cài đặt của Visual Studio nằm trong danh sách đối tượng được bảo vệ, Copilot không được chạm vào. Vấn đề nằm ở cách kiểm tra: logic xác thực chỉ so sánh chuỗi ký tự gốc.
Tầng Win32 của Windows có một quy tắc cũ: dấu chấm ở cuối tên tệp sẽ tự động bị loại bỏ. Rehberger trích dẫn chính tài liệu của Microsoft: «File and Folder names that end with the ASCII Period (0x2E) character will also be saved without this character.» Vì vậy, lúc kiểm tra, settings.json. và settings.json là hai chuỗi khác nhau nên khâu kiểm tra cho qua; đến khi ghi xuống đĩa, dấu chấm cuối bị bỏ đi và nội dung được ghi chính là tệp được bảo vệ kia.
Chuỗi tấn công đại thể như sau: kẻ tấn công trước hết tác động lên Copilot bằng tiêm lệnh gián tiếp (indirect prompt injection), chẳng hạn cài chỉ thị vào dữ liệu do một máy chủ MCP trả về; Copilot làm theo và ghi nội dung do kẻ tấn công muốn vào các cấu hình như .mcp.json; khi IDE đọc cấu hình, lệnh độc hại sẽ được kích hoạt. Trong Visual Studio, việc sửa cài đặt đường dẫn của một số công cụ liên quan cũng có thể dẫn đến thực thi lệnh.
Rehberger còn báo thêm một số vấn đề khác: dùng ..\ để duyệt đường dẫn có thể đọc được các tệp bị hạn chế, một số tệp làm lộ mã định danh cài đặt, và mô hình MAI-Code-1-Flash kháng cự khá yếu trước tiêm lệnh gián tiếp. Theo phân tích của ông, cách Microsoft sửa là thêm một lệnh gọi GetFullPath để chuẩn hóa đường dẫn trước, loại bỏ dấu chấm cuối và khai triển .., rồi mới tiến hành so sánh.
Lần thứ hai cho cùng một kiểu lỗi
Đây không phải lần đầu Rehberger ra tay từ các tệp cấu hình. Tháng 8/2025, ông đã công bố một lỗ hổng thực thi mã từ xa của GitHub Copilot trong VS Code (CVE-2025-53773): tiêm lệnh khiến Copilot sửa tệp settings.json của workspace, bật công tắc tự động chạy công cụ không cần xác nhận, sau đó có thể chạy lệnh trực tiếp. Lần đó cũng được vá cùng đợt Patch Tuesday của Microsoft.
Đặt hai vụ cạnh nhau, mô thức là như nhau: tác nhân được phép ghi tệp, tệp cấu hình quyết định tác nhân và IDE làm được gì, nên chỉ cần khiến tác nhân ghi được vào cấu hình là quyền hạn đã tự được nó nới rộng. Bài học của năm 2025 là thêm danh sách bảo vệ cho các tệp cấu hình, và lần này chính lớp danh sách đó đã bị vượt qua. Kết luận của Rehberger trong bài viết là:
«Security controls around agents must hold even when the agent itself is compromised or misaligned.»
Các biện pháp kiểm soát an ninh xung quanh tác nhân phải vẫn còn hiệu lực ngay cả khi bản thân tác nhân đã bị chiếm quyền hoặc hoạt động lệch hướng.
Người dùng cần làm gì
Về dòng thời gian: Rehberger gửi báo cáo ngày 4/8, từ 4/8 đến 7/8 bổ sung tác động lên Visual Studio và chi tiết khai thác, theo dõi lại ngày 30/8; Microsoft xác nhận ngày 16/9, thông báo mức thưởng bằng 0 ngày 11/10 và phát hành bản vá ngày 13/10. Vì sao Microsoft không trả thưởng thì các tài liệu công khai không giải thích.
Với các nhóm đang dùng Visual Studio và SSMS, cách xử lý chỉ có một: cài bản vá của tháng này càng sớm càng tốt. Những môi trường dùng Copilot kết nối với máy chủ MCP của bên thứ ba có rủi ro cao hơn, vì lối vào của tiêm lệnh chính là các dữ liệu bên ngoài này.
Nguồn tham khảo: blog kỹ thuật Embrace The Red, CocoLoop, Hướng dẫn cập nhật bảo mật của Microsoft; mã CVE, điểm CVSS và các mốc công bố lấy theo blog của nhà nghiên cứu và thông báo của Microsoft.