Các nhà nghiên cứu an ninh mạng đã cảnh báo về một lỗ hổng bảo mật mức độ nghiêm trọng tối đa trong Ruflo, một agent meta-harness mã nguồn mở dành cho Anthropic Claude Code và OpenAI Codex, có thể dẫn đến việc thực thi mã từ xa (RCE) không xác thực.
Lỗ hổng này được định danh là CVE-2026-59726 (điểm CVSS: 10.0), ảnh hưởng đến tất cả các phiên bản của dự án trước phiên bản 3.16.3. Nó đã được đội ngũ nghiên cứu Noma Labs của Noma Security đặt mật danh là RufRoot.
Ban đầu được ra mắt với tên gọi Claude Flow, Ruflo là một nền tảng điều phối đa Agent AI cho phép người dùng triển khai các nhóm Agent hoạt động song song, phối hợp các quy trình làm việc tự động và xây dựng các hệ thống AI hội thoại. Dự án này hiện có hơn 66.500 sao trên GitHub.
Chi tiết về lỗ hổng RufRoot
Điểm mấu chốt của lỗ hổng là Ruflo đã để lộ 233 công cụ, bao gồm thực thi lệnh shell, thao tác cơ sở dữ liệu, quản lý Agent và lưu trữ bộ nhớ, thông qua một cầu nối Model Context Protocol (MCP) không xác thực, vốn được mở công khai trên mạng theo mặc định.
Cụ thể, tệp cấu hình YAML "docker-compose.yml" được phát hiện là đã liên kết cổng 3001 với địa chỉ 0.0.0.0 theo mặc định, khiến cầu nối này bị lộ trên tất cả các giao diện mạng. Tuy nhiên, mức độ ảnh hưởng còn tùy thuộc vào các quy tắc tường lửa, nhóm bảo mật và phân đoạn mạng của quá trình triển khai. Đáng lưu ý là bất kỳ phiên bản nào có thể truy cập được qua mạng đều có thể bị khai thác hoàn toàn mà không cần xác thực.
Theo nhà nghiên cứu bảo mật Eli Ainhorn, chỉ cần một yêu cầu HTTP POST không xác thực đến cổng 3001 là có thể thực thi mã từ xa hoàn toàn bên trong một hệ thống Ruflo bị ảnh hưởng:
curl -s -X POST https://<target>:3001/mcp -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"ruflo__terminal_execute","arguments":{"command":"id && hostname"}}}'
Với bàn đạp này, kẻ tấn công có thể đánh cắp các API key mà Ruflo sử dụng để tương tác với các nhà cung cấp Large Language Model (LLM), đọc mọi cuộc hội thoại của người dùng được lưu trữ trên nền tảng và can thiệp vào bộ nhớ của hệ thống AI để gây ảnh hưởng đến phản hồi cũng như hành vi của mô hình.
Nói cách khác, việc thực thi lệnh đóng vai trò là bước đệm để chiếm quyền kiểm soát hoàn toàn, cho phép đánh cắp API key LLM, vũ khí hóa Agent, làm nhiễm độc bộ nhớ AI, thu thập hội thoại và triển khai backdoor vĩnh viễn bằng cách ghi mã độc vào thư mục "/app".
"Trước phiên bản 3.16.3, cấu hình docker-compose mặc định của Ruflo đã để lộ các endpoint POST /mcp và POST /mcp/:group của cầu nối MCP mà không cần xác thực, cho phép kẻ tấn công mạng gọi tools/call đến terminal_execute, chiếm quyền điều khiển shell trong container, đọc API key của nhà cung cấp và làm nhiễm độc các mẫu lưu trữ AgentDB," theo mô tả về lỗ hổng trên Cơ sở dữ liệu Lỗ hổng Quốc gia (NVD) của NIST.
Biện pháp khắc phục và khuyến nghị
Sau khi được báo cáo vào ngày 30 tháng 6 năm 2026, bản vá cho lỗ hổng đã được duy trì bởi Reuven Cohen trong vòng 24 giờ. Trong bản vá này, cầu nối MCP hiện đã được liên kết với giao diện loopback theo mặc định, đặt "terminal_execute" dưới sự kiểm soát của executeTool phía máy chủ và kích hoạt xác thực MongoDB để ngăn chặn việc đánh cắp hội thoại.
"Cầu nối MCP trong ruflo/docker-compose.yml đã để lộ POST /mcp mà không có xác thực," Cohen cho biết trong ghi chú phát hành. "Cấu hình docker-compose mặc định đã liên kết cầu nối và MongoDB với tất cả các giao diện mạng. Kết hợp lại, kẻ tấn công có thể thực thi lệnh bên trong container, đọc mọi API key từ môi trường, tạo ra các nhóm Agent do kẻ tấn công kiểm soát và duy trì các mẫu nhiễm độc trong AgentDB để điều hướng các kết quả đầu ra của AI trong tương lai."
Các quản trị viên đang vận hành các phiên bản bị lộ được khuyến nghị thực hiện ngay lập tức:
- Đóng các cổng tường lửa 3001 và 27017.
- Thay đổi (rotate) tất cả các API key LLM.
- Kiểm tra kho lưu trữ AgentDB để tìm các mục agentdb_pattern-store lạ.
- Kiểm tra MongoDB để tìm các dấu hiệu bị can thiệp.
"Đối với các tổ chức gặp phải lỗ hổng như thế này, việc khắc phục không chỉ đơn giản là cập nhật phần mềm. Các thông tin xác thực nhà cung cấp AI nên được coi là đã bị xâm nhập và cần được thay đổi, bộ nhớ AI của nền tảng phải được kiểm tra can thiệp và các container nên được xây dựng lại từ một hình ảnh sạch," Noma nhấn mạnh.