Tóm tắt
Bài viết mô tả một class prompt injection trong Copilot for Word: attacker giấu instruction trong tài liệu, Copilot đọc tài liệu đó như context, rồi xử lý instruction như một phần yêu cầu của người dùng. Trong PoC, Copilot có thể thay đổi số liệu trong báo cáo tài chính và chép instruction ẩn vào tài liệu mới.
Điểm khiến bài này khác các demo prompt injection thường gặp là khả năng tự lan qua workflow bình thường. Tài liệu mới được tạo bởi người dùng nội bộ, trông đáng tin hơn tài liệu gốc, nhưng lại mang payload ẩn để kích hoạt lần tiếp theo khi được dùng làm source material.
Chuỗi tấn công
Kịch bản bắt đầu bằng một tài liệu bên ngoài, ví dụ market analysis, có đoạn instruction được giấu bằng chữ trắng trên nền trắng hoặc font nhỏ. Người dùng đưa tài liệu này vào Copilot for Word, hoặc Copilot tự tìm thấy nó trong OneDrive khi soạn báo cáo. Vì Copilot phải đọc nội dung tài liệu để biết phần nào liên quan, instruction ẩn đi vào context của LLM.
Trong PoC, instruction yêu cầu Copilot sửa số liệu tài chính rồi chép lại chính payload vào cuối tài liệu mới bằng định dạng khó nhìn thấy. Khi tài liệu mới được dùng cho báo cáo tiếp theo, payload lại chạy dù tài liệu độc hại ban đầu không còn được attach.
Trạng thái disclosure
Tác giả nói báo cáo được gửi cho MSRC vào ngày 2026-03-06, sau đó disclosure kéo dài 144 ngày. Microsoft triển khai nhiều mitigation, bao gồm thay đổi trải nghiệm Edit with Copilot và nâng model. Dù vậy, bài viết cho biết attack chain vẫn tái hiện được với GPT-5.6 vào ngày 2026-07-15 và còn tái hiện vào ngày 2026-07-28.
Tác giả không công bố payload đầy đủ, nhưng mô tả class lỗi ở mức đủ để defender hiểu rủi ro. Khuyến nghị tạm thời là coi tài liệu ngoài là untrusted khi dùng với Copilot, review tài liệu trước khi đưa vào context, và review kỹ output trước khi chia sẻ hoặc tái sử dụng.
Ý nghĩa với Dev
Vấn đề gốc là ranh giới giữa instruction và data trong hệ thống LLM. Một tài liệu cần được đọc để phục vụ task, nhưng chính việc đọc đó cho attacker cơ hội ảnh hưởng đến quá trình suy luận. Dùng một LLM khác để lọc trước có thể giảm một số payload, nhưng vẫn đẩy cùng bài toán ra ngoài thêm một lớp.
Nếu bạn đang build agent đọc file, email, ticket, wiki hoặc trang web, hãy thiết kế hệ thống với giả định rằng content ngoài có thể chứa instruction độc hại. Cần lưu provenance của source, tách quyền ghi khỏi quyền đọc khi có thể, giữ log chỉnh sửa do model thực hiện, và buộc review ở các bước tạo tài liệu có tác động kinh doanh.
Điều cần giữ lại
Prompt injection không còn chỉ là chuyện model trả lời sai trong chat. Khi AI được quyền tạo tài liệu mới, gọi tool, tìm file và đưa output trở lại workflow, lỗi integrity có thể sống lâu hơn phiên chat ban đầu. Đây là bài toán product architecture, không phải một regex lọc prompt.