3 phút đọc

Một dấu chấm cuối tên file khiến Copilot trong Visual Studio chạy mã độc

CVE-2026-103572 trong Copilot của Visual Studio và SQL Server Management Studio: nội dung độc trong repo khiến agent ghi đè file cấu hình MCP mà không hỏi người dùng, rồi IDE tự chạy lệnh của hacker.

Bản vá Patch Tuesday ngày 13/10 của Microsoft có một lỗi rất đáng để dân dùng AI agent đọc kỹ: CVE-2026-103572, điểm 8,8 (CVSS 3.1). Lỗi nằm trong Copilot của Visual Studio và SQL Server Management Studio (SSMS). Người phát hiện là Johann Rehberger, một nhà nghiên cứu chuyên về tấn công AI agent.

Điểm hay của vụ này: lỗi không nằm ở mô hình AI, mà ở một dòng kiểm tra tên file.

Mô phỏng lỗi: chỉ dẫn giấu trong repo khiến Copilot ghi vào “.mcp.json.” có dấu chấm cuối, lọt qua bước hỏi người dùng, Windows lưu thành .mcp.json và IDE chạy lệnh độc

Copilot có một lớp bảo vệ, và lớp đó bị lách

Ở chế độ agent, Copilot được phép sửa file trong dự án. Riêng các file cấu hình nhạy cảm như .mcp.json (danh sách server MCP mà IDE sẽ khởi chạy) thì Copilot phải hỏi người dùng trước khi sửa.

Vấn đề là bước kiểm tra này so sánh nguyên văn tên file. Windows lại tự bỏ dấu chấm ở cuối tên file. Nên khi Copilot ghi vào .mcp.json. (có thêm dấu chấm):

  1. Bước kiểm tra thấy tên file khác .mcp.json, nên không hỏi người dùng
  2. Windows bỏ dấu chấm cuối, nên thực ra ghi đè đúng file .mcp.json

Mẹo tương tự cũng dùng được với settings.VisualStudio.json và file settings.json của SSMS.

Hacker ra lệnh cho Copilot bằng cách nào?

Bằng prompt injection gián tiếp: giấu chỉ dẫn trong nội dung mà Copilot sẽ đọc, như một file trong repo bạn clone về, tài liệu, hay phản hồi từ một server MCP khác. Copilot đọc phải và làm theo:

  • Cách 1: thêm một “server MCP” thực chất là lệnh độc vào .mcp.json rồi bật nó lên. IDE khởi chạy server, tức là chạy luôn lệnh của hacker. Cách này dùng được trên cả SSMS.
  • Cách 2 (chỉ Visual Studio): đổi đường dẫn tới công cụ tìm kiếm ripgrep sang một file độc, để file đó chạy khi Copilot tìm kiếm trong code.

Điều kiện là người dùng đang làm việc với Copilot, và agent đọc phải nội dung do hacker soạn. Mở một repo lạ rồi nhờ Copilot “đọc và sửa giúp” là đủ.

Nên làm gì

Cập nhật Visual Studio và SSMS lên bản tháng 10/2026. Microsoft đã sửa bằng cách chuẩn hóa đường dẫn trước khi kiểm tra.

Cẩn thận với repo lạ. Đừng để agent tự xử lý repo, file hay server MCP không rõ nguồn khi bạn chưa đọc qua nội dung.

Để ý file .mcp.json. Thấy file này thay đổi mà bạn không hề sửa thì phải dừng lại kiểm tra ngay. Lời khuyên này đúng với mọi IDE có agent, không riêng Visual Studio.

Microsoft đánh giá lỗi “khó bị khai thác” và chưa ghi nhận vụ tấn công thực tế nào. Nhưng nhà nghiên cứu đã công bố chi tiết cách khai thác cùng ngày bản vá ra, nên đừng để lâu.

Bài học chung

Các agent viết code ngày càng được giao quyền sửa file và chạy lệnh. Mỗi lớp “hỏi người dùng trước” là một hàng rào quan trọng, và hàng rào đó chỉ chắc bằng dòng code kiểm tra yếu nhất. Ở vụ này, dòng yếu nhất là một phép so sánh chuỗi bỏ quên một dấu chấm.


Bạn có để agent tự sửa file cấu hình không, hay luôn bắt nó hỏi trước? Kể trong cộng đồng Vibe Code & Bảo Mật nhé.

Nguồn

Chia sẻ lên Facebook

Bình luận

Đang tải bình luận…