-
09/04/2020
-
128
-
1.825 bài viết
Lỗ hổng “by design” trong MCP: Nguy cơ lan rộng toàn chuỗi cung ứng AI
Một điểm yếu mang tính “thiết kế ngay từ đầu” trong Model Context Protocol (MCP) có thể mở đường cho tấn công thực thi mã từ xa trên diện rộng. Đáng chú ý, lỗ hổng này không chỉ ảnh hưởng đến một phần mềm đơn lẻ mà có khả năng lan rộng toàn bộ chuỗi cung ứng AI, từ thư viện, framework cho tới các hệ thống triển khai thực tế.
Theo nghiên cứu của OX Security, vấn đề nằm trong cách MCP xử lý cấu hình thông qua giao diện STDIO (standard input/output). Đây là cơ chế cho phép mô hình AI giao tiếp trực tiếp với hệ thống bên ngoài.
Tuy nhiên, cách triển khai mặc định của MCP lại tiềm ẩn rủi ro nghiêm trọng: nó cho phép chuyển đổi trực tiếp từ cấu hình sang thực thi lệnh hệ điều hành mà không có kiểm soát đầy đủ. Điều này tạo ra một “cửa hậu logic”, nơi bất kỳ ai cũng có thể chèn và thực thi lệnh tùy ý nếu khai thác đúng cách.
Không giống các lỗ hổng truyền thống phát sinh do lỗi lập trình, đây là một điểm yếu mang tính kiến trúc (“by design”), tức là tồn tại ngay từ cách hệ thống được xây dựng ban đầu.
Các lỗ hổng cụ thể và phạm vi ảnh hưởng
Phân tích cho thấy có ít nhất 10 lỗ hổng đã được định danh (CVE) liên quan đến vấn đề này, ảnh hưởng tới nhiều dự án phổ biến như:
- LiteLLM
- LangChain
- Flowise
- LangFlow
- LettaAI
- DocsGPT
- Windsurf
Một số mã lỗ hổng tiêu biểu gồm:
- CVE-2026-30623 (LiteLLM) - đã vá
- CVE-2026-40933 (Flowise)
- CVE-2026-26015 (DocsGPT) - đã vá
- CVE-2025-65720 (GPT Researcher)
Ngoài ra, các lỗ hổng tương tự cũng từng xuất hiện trước đó trong các dự án như MCP Inspector, LibreChat hay Cursor, cho thấy đây là một vấn đề mang tính hệ thống, không phải cá biệt. Theo ước tính, hơn 7.000 máy chủ công khai và các gói phần mềm với tổng cộng hơn 150 triệu lượt tải có thể bị ảnh hưởng.
Cơ chế khai thác: Từ cấu hình đến chiếm quyền hệ thống
Kịch bản tấn công điển hình bắt đầu từ việc kẻ tấn công đưa vào một cấu hình MCP độc hại, thông qua nhiều con đường khác nhau như:
- Chỉnh sửa cấu hình trực tiếp
- Lợi dụng prompt injection (thậm chí không cần tương tác - zero-click)
- Thông qua marketplace hoặc các request mạng
Khi hệ thống xử lý cấu hình này, MCP sẽ sử dụng STDIO để khởi chạy một tiến trình tương ứng. Vấn đề nằm ở chỗ, thay vì chỉ khởi tạo server hợp lệ, cơ chế này có thể bị lợi dụng để thực thi bất kỳ lệnh hệ điều hành nào.
Hệ quả là kẻ tấn công có thể:
Hệ quả là kẻ tấn công có thể:
- Thực thi mã Python tùy ý
- Truy cập cơ sở dữ liệu nội bộ
- Đánh cắp API key, thông tin người dùng
- Kiểm soát hoàn toàn hệ thống AI backend
Điểm đáng lo ngại nhất không nằm ở mức độ nghiêm trọng của từng lỗ hổng đơn lẻ, mà ở phạm vi lan truyền của nó. Chỉ một quyết định thiết kế trong MCP đã vô tình “lan truyền rủi ro” sang toàn bộ hệ sinh thái:
- Nhiều ngôn ngữ lập trình (Python, Java, Rust, TypeScript)
- Nhiều framework AI phổ biến
- Hàng nghìn ứng dụng triển khai thực tế
Điều này biến sự cố thành một vấn đề chuỗi cung ứng (supply chain), nơi rủi ro không còn nằm ở một điểm mà trải rộng trên toàn bộ hệ thống phụ thuộc lẫn nhau.
Hậu quả thực tế
Nếu bị khai thác thành công, lỗ hổng có thể dẫn đến:
- Chiếm quyền điều khiển máy chủ AI
- Rò rỉ dữ liệu nhạy cảm và thông tin người dùng
- Tấn công lan sang các hệ thống nội bộ khác
- Mất kiểm soát pipeline xử lý AI
Trong bối cảnh AI đang được tích hợp sâu vào doanh nghiệp, đây là rủi ro có thể ảnh hưởng trực tiếp đến hoạt động kinh doanh và bảo mật dữ liệu.
Tình trạng vá lỗi và vấn đề tồn đọng
Một số dự án đã phát hành bản vá cho các CVE cụ thể. Tuy nhiên, vấn đề cốt lõi vẫn chưa được giải quyết triệt để.
Đáng chú ý, phía Anthropic cho rằng hành vi này là “đúng như thiết kế” và chưa có động thái thay đổi kiến trúc MCP. Điều này đồng nghĩa với việc rủi ro vẫn tồn tại trong implementation gốc và có thể tiếp tục lan rộng.
Đáng chú ý, phía Anthropic cho rằng hành vi này là “đúng như thiết kế” và chưa có động thái thay đổi kiến trúc MCP. Điều này đồng nghĩa với việc rủi ro vẫn tồn tại trong implementation gốc và có thể tiếp tục lan rộng.
Khuyến nghị từ chuyên gia
Để giảm thiểu rủi ro, các chuyên gia an ninh mạng khuyến cáo:
- Không để lộ dịch vụ MCP ra Internet công khai
- Chạy các dịch vụ MCP trong môi trường sandbox hoặc container
- Theo dõi chặt chẽ các lệnh được thực thi thông qua MCP
- Xem mọi cấu hình MCP từ bên ngoài là không đáng tin cậy
- Chỉ sử dụng server MCP từ nguồn đã xác minh
- Triển khai kiểm soát truy cập và giám sát hành vi bất thường
Ngoài ra, cần chuyển tư duy bảo mật từ “tin tưởng framework” sang “kiểm soát toàn bộ luồng thực thi”, đặc biệt trong các hệ thống AI có khả năng tự động hóa cao.
Theo The Hacker News