Công cụ AI lập trình Cursor bị phát hiện lỗ hổng “CopyPasta License Attack”: kẻ tấn công có thể giấu chỉ dẫn độc hại trong tệp LICENSE.txt hoặc README.md để khiến AI chèn mã khai thác vào codebase khi chỉnh sửa file.
Lỗ hổng tận dụng nhận diện lời nhắc (prompt) trong bình luận Markdown, khiến các công cụ lập trình AI sao chép mã độc sang file mới. Kiểm thử cũng ghi nhận nguy cơ tương tự với một số công cụ AI khác, tạo rủi ro cho môi trường phát triển và sản xuất.
- Kẻ tấn công giấu lệnh độc trong LICENSE/README để gây prompt injection.
- Các công cụ AI có thể tự chèn mã độc vào file mới khi chỉnh sửa.
- Phòng ngừa: kiểm duyệt file, giới hạn quyền, rà soát mã trước khi hợp nhất.
Lỗ hổng “CopyPasta License Attack” là gì?
Đây là kỹ thuật prompt injection nơi chỉ dẫn độc hại được giấu trong tệp văn bản dự án (ví dụ LICENSE.txt, README.md), khiến công cụ AI lập trình hiểu sai ngữ cảnh và chèn mã độc vào code khi thực hiện thao tác chỉnh sửa hoặc tạo file.
Kỹ thuật tận dụng khả năng đọc và tiếp nhận hướng dẫn từ nội dung văn bản của AI. Nếu công cụ không phân biệt nguồn tin cậy, nó có thể sao chép đoạn mã chứa payload vào các file dự án, tạo lỗ hổng bảo mật sâu khó phát hiện.
Công cụ nào có thể bị ảnh hưởng?
Nhiều công cụ AI lập trình có cơ chế đọc nội dung repository khi hỗ trợ lập trình có thể bị ảnh hưởng nếu không có cơ chế kiểm soát lời nhắc và lọc nội dung đầu vào.
Kiểm thử thực tế cho thấy ngoài Cursor còn có một số công cụ AI khác gặp nguy cơ tương tự. Mức độ rủi ro phụ thuộc vào cách công cụ xử lý bình luận Markdown, phạm vi quyền truy cập tới file và cơ chế xác thực nội dung.
Nguy cơ thực tế và hệ quả
Mã độc chèn vào có thể mở backdoor, đánh cắp dữ liệu, hoặc làm tê liệt hệ thống nếu được đưa vào môi trường phát triển, tích hợp liên tục (CI) hoặc sản xuất mà không được rà soát kỹ.
Nếu bản phát triển bị nhiễm, mã độc có thể lan ra qua commits và merge, khiến việc phát hiện và khắc phục gặp khó khăn, đặc biệt khi payload được giấu sâu trong tệp tài liệu và bình luận.
Biện pháp phòng ngừa ngay lập tức
Không tin tưởng tự động mọi file văn bản trong repository: chuyển các file LICENSE/README ra vùng kiểm duyệt, áp dụng lọc prompt, tắt tự động chèn mã, và yêu cầu phê duyệt tay trước khi hợp nhất thay đổi do AI tạo.
Thực hiện kiểm tra an ninh tự động trên CI, dùng phân tích tĩnh để phát hiện thay đổi bất thường, cập nhật công cụ AI theo bản vá từ nhà cung cấp và giới hạn quyền truy cập của công cụ tới chỉ những phần cần thiết.
Cách phát hiện mã độc từ prompt injection?
So sánh diff giữa file do AI tạo và mẫu mong đợi, chạy phân tích tĩnh và scan chữ ký độc hại; cảnh giác các thay đổi bất thường trong LICENSE/README và phần header của file.
Nên làm gì nếu phát hiện repository bị nhiễm?
Cách ly repository, thu thập log, khôi phục từ bản sao an toàn, rà soát commit history, mở kiểm tra bảo mật sâu và thông báo đội an ninh để xử lý theo quy trình ứng phó sự cố.
Các chính sách nào nên áp dụng cho công cụ AI lập trình?
Áp dụng nguyên tắc tối thiểu quyền, buộc phê duyệt tay cho thay đổi do AI, lọc input trước khi truyền cho công cụ và cập nhật thường xuyên bản vá bảo mật.
Liệu các công cụ AI có thể vá hoàn toàn lỗ hổng này không?
Nhà cung cấp có thể giảm rủi ro bằng cơ chế lọc prompt, sandboxing và giới hạn quyền, nhưng người dùng vẫn cần quy trình vận hành và kiểm duyệt để giảm khả năng tấn công.