Hơn 30 lỗ hổng bảo mật đã được công bố trong các Môi trường Phát triển Tích hợp (IDE) được hỗ trợ bởi trí tuệ nhân tạo (AI), kết hợp các prompt injection primitives với các tính năng hợp pháp để đạt được data exfiltration và remote code execution (RCE).
Những thiếu sót về bảo mật này được nhà nghiên cứu bảo mật Ari Marzouk (MaccariTA) gọi chung là IDEsaster. Chúng ảnh hưởng đến các IDE và tiện ích mở rộng phổ biến như Cursor, Windsurf, Kiro.dev, GitHub Copilot, Zed.dev, Roo Code, Junie và Cline. Trong số này, 24 lỗ hổng đã được gán mã định danh CVE.
"Tôi nghĩ rằng việc nhiều chuỗi tấn công phổ quát đã ảnh hưởng đến mọi AI IDE được thử nghiệm là phát hiện đáng ngạc nhiên nhất của nghiên cứu này," Marzouk chia sẻ với The Hacker News.
"Tất cả các AI IDE (và các trợ lý viết mã tích hợp với chúng) đều bỏ qua phần mềm cơ bản (IDE) trong mô hình mối đe dọa của chúng. Họ coi các tính năng của mình là an toàn vốn có vì chúng đã tồn tại trong nhiều năm. Tuy nhiên, khi bạn thêm các AI agents có thể hoạt động tự chủ, các tính năng tương tự có thể bị vũ khí hóa thành các prompt injection primitives để data exfiltration và RCE."
Về cốt lõi, những vấn đề này liên kết ba vector khác nhau phổ biến trong các IDE dựa trên AI:
- Vượt qua các "rào chắn" (guardrails) của large language model (LLM) để chiếm quyền kiểm soát ngữ cảnh và thực hiện theo lệnh của kẻ tấn công (còn gọi là prompt injection)
- Thực hiện một số hành động mà không cần bất kỳ tương tác nào của người dùng thông qua các lệnh gọi công cụ được AI agent tự động phê duyệt
- Kích hoạt các tính năng hợp pháp của IDE cho phép kẻ tấn công vượt ra ngoài giới hạn bảo mật để rò rỉ dữ liệu nhạy cảm hoặc thực thi các lệnh tùy ý
Các vấn đề được nêu bật khác với các chuỗi tấn công trước đây đã lợi dụng prompt injections kết hợp với các công cụ dễ bị tổn thương (hoặc lạm dụng các công cụ hợp pháp để thực hiện các hành động đọc hoặc ghi) nhằm sửa đổi cấu hình của AI agent để đạt được code execution hoặc các hành vi không mong muốn khác.
Điều khiến IDEsaster đáng chú ý là nó sử dụng các prompt injection primitives và các công cụ của AI agent, tận dụng chúng để kích hoạt các tính năng hợp pháp của IDE, dẫn đến rò rỉ thông tin hoặc command execution.
Việc chiếm quyền ngữ cảnh (context hijacking) có thể được thực hiện theo nhiều cách khác nhau, bao gồm thông qua các tham chiếu ngữ cảnh do người dùng thêm vào dưới dạng các URL được dán hoặc văn bản có các ký tự ẩn không nhìn thấy được bằng mắt thường nhưng có thể được LLM phân tích. Ngoài ra, ngữ cảnh có thể bị làm ô nhiễm bằng cách sử dụng máy chủ Model Context Protocol (MCP) thông qua tool poisoning hoặc rug pulls, hoặc khi một máy chủ MCP hợp pháp phân tích đầu vào do kẻ tấn công kiểm soát từ một nguồn bên ngoài.
Một số cuộc tấn công được xác định có thể thực hiện được nhờ chuỗi exploit mới này như sau:
- CVE-2025-49150 (Cursor), CVE-2025-53097 (Roo Code), CVE-2025-58335 (JetBrains Junie), GitHub Copilot (không có CVE), Kiro.dev (không có CVE) và Claude Code (được giải quyết bằng cảnh báo bảo mật) – Sử dụng prompt injection để đọc một tệp nhạy cảm bằng công cụ hợp pháp ("read_file") hoặc công cụ dễ bị tổn thương ("search_files" hoặc "search_project") và ghi một tệp JSON thông qua công cụ hợp pháp ("write_file" hoặc "edit_file") với remote JSON schema được lưu trữ trên một tên miền do kẻ tấn công kiểm soát, khiến dữ liệu bị rò rỉ khi IDE thực hiện yêu cầu GET.
- CVE-2025-53773 (GitHub Copilot), CVE-2025-54130 (Cursor), CVE-2025-53536 (Roo Code), CVE-2025-55012 (Zed.dev) và Claude Code (được giải quyết bằng cảnh báo bảo mật) – Sử dụng prompt injection để chỉnh sửa các tệp cài đặt IDE (".vscode/settings.json" hoặc ".idea/workspace.xml") nhằm đạt được code execution bằng cách đặt "php.validate.executablePath" hoặc "PATH_TO_GIT" thành đường dẫn của một tệp thực thi chứa mã độc.
- CVE-2025-64660 (GitHub Copilot), CVE-2025-61590 (Cursor) và CVE-2025-58372 (Roo Code) – Sử dụng prompt injection để chỉnh sửa các tệp cấu hình workspace (*.code-workspace) và ghi đè cài đặt multi-root workspace nhằm đạt được code execution.
Điều đáng chú ý là hai ví dụ cuối cùng phụ thuộc vào việc một AI agent được cấu hình để tự động phê duyệt các thao tác ghi tệp, điều này sau đó cho phép kẻ tấn công có khả năng ảnh hưởng đến các prompt để ghi các cài đặt workspace độc hại. Tuy nhiên, vì hành vi này được tự động phê duyệt theo mặc định đối với các tệp trong workspace, nó dẫn đến arbitrary code execution mà không cần bất kỳ tương tác nào của người dùng hoặc cần phải mở lại workspace.
Với prompt injections và jailbreaks đóng vai trò là bước đầu tiên trong chuỗi tấn công, Marzouk đưa ra các khuyến nghị sau:
- Chỉ sử dụng AI IDE (và AI agents) với các dự án và tệp đáng tin cậy. Các tệp quy tắc độc hại, hướng dẫn ẩn bên trong mã nguồn hoặc các tệp khác (README), và thậm chí cả tên tệp đều có thể trở thành vector prompt injection.
- Chỉ kết nối với các máy chủ MCP đáng tin cậy và liên tục theo dõi những máy chủ này để phát hiện các thay đổi (ngay cả một máy chủ đáng tin cậy cũng có thể bị xâm phạm). Xem xét và hiểu luồng dữ liệu của các công cụ MCP (ví dụ: một công cụ MCP hợp pháp có thể lấy thông tin từ nguồn do kẻ tấn công kiểm soát, chẳng hạn như một GitHub PR)
- Thủ công xem xét các nguồn bạn thêm (chẳng hạn như qua URL) để tìm các hướng dẫn ẩn (nhận xét trong HTML / văn bản ẩn bằng CSS / ký tự Unicode vô hình, v.v.).
Các nhà phát triển AI agents và AI IDE được khuyến nghị áp dụng nguyên tắc đặc quyền tối thiểu (least privilege) cho các công cụ LLM, giảm thiểu các vector prompt injection, tăng cường tính bảo mật của system prompt, sử dụng sandboxing để chạy lệnh, thực hiện kiểm tra bảo mật đối với path traversal, information leakage và command injection.
Việc công bố này trùng hợp với việc phát hiện ra một số lỗ hổng trong các công cụ viết mã AI có thể gây ra nhiều tác động khác nhau:
- Lỗ hổng command injection trong OpenAI Codex CLI (CVE-2025-61260) lợi dụng việc chương trình ngầm tin tưởng các lệnh được cấu hình thông qua các mục nhập máy chủ MCP và thực thi chúng khi khởi động mà không yêu cầu sự cho phép của người dùng. Điều này có thể dẫn đến arbitrary command execution khi một tác nhân độc hại có thể giả mạo các tệp ".env" và "./.codex/config.toml" của repository.
- Một indirect prompt injection trong Google Antigravity sử dụng một nguồn web bị nhiễm độc có thể được dùng để thao túng Gemini nhằm thu thập thông tin xác thực và mã nhạy cảm từ IDE của người dùng và exfiltrating thông tin bằng cách sử dụng một browser subagent để duyệt đến một trang web độc hại.
- Nhiều lỗ hổng trong Google Antigravity có thể dẫn đến data exfiltration và remote command execution thông qua indirect prompt injections, cũng như lợi dụng một malicious trusted workspace để nhúng một backdoor lâu dài nhằm thực thi mã tùy ý mỗi khi ứng dụng được khởi chạy trong tương lai.
- Một loại lỗ hổng mới có tên PromptPwnd nhắm mục tiêu vào các AI agents được kết nối với GitHub Actions (hoặc GitLab CI/CD pipelines) dễ bị tổn thương bằng prompt injections để lừa chúng thực thi các công cụ đặc quyền tích hợp sẵn, dẫn đến rò rỉ thông tin hoặc code execution.
Khi các công cụ AI agent ngày càng trở nên phổ biến trong môi trường doanh nghiệp, những phát hiện này cho thấy các công cụ AI mở rộng bề mặt tấn công của các máy phát triển như thế nào, thường bằng cách tận dụng khả năng của LLM không thể phân biệt giữa các hướng dẫn do người dùng cung cấp để hoàn thành một tác vụ và nội dung mà nó có thể thu thập từ một nguồn bên ngoài, mà đến lượt nó, có thể chứa một prompt độc hại được nhúng.
"Bất kỳ repository nào sử dụng AI cho việc phân loại vấn đề (issue triage), gắn nhãn PR (PR labeling), gợi ý mã (code suggestions) hoặc trả lời tự động đều có nguy cơ bị prompt injection, command injection, secret exfiltration, repository compromise và upstream supply chain compromise," nhà nghiên cứu Rein Daelman của Aikido cho biết.
Marzouk cũng cho biết những khám phá này nhấn mạnh tầm quan trọng của "Secure for AI", một mô hình mới được nhà nghiên cứu đặt ra để giải quyết các thách thức bảo mật do các tính năng AI mang lại, qua đó đảm bảo rằng các sản phẩm không chỉ an toàn theo mặc định và an toàn theo thiết kế, mà còn được xây dựng dựa trên việc xem xét cách các thành phần AI có thể bị lạm dụng theo thời gian.
"Đây là một ví dụ khác về lý do tại sao nguyên tắc 'Secure for AI' là cần thiết," Marzouk nói. "Việc kết nối AI agents với các ứng dụng hiện có (trong trường hợp của tôi là IDE, trong trường hợp của họ là GitHub Actions) tạo ra những rủi ro mới nổi."