Framework robot mã nguồn mở LeRobot của Hugging Face bị phát hiện có lỗ hổng thực thi mã từ xa nghiêm trọng. Chỉ cần chạm tới cổng dịch vụ, kẻ tấn công có thể chiếm máy mà không cần tên đăng nhập, mật khẩu hay chứng chỉ. Lỗ hổng được định danh là CVE-2026-25874.
Lỗi nằm ở đâu
LeRobot thường chạy mô hình chính sách đã huấn luyện trên máy chủ GPU, còn robot phía trước gọi gRPC PolicyServer để nhận chỉ lệnh hành động. Kiến trúc đó không phải vấn đề. Điểm nguy hiểm nằm ở lớp truyền thông, nơi dữ liệu đi vào dịch vụ được xử lý bằng pickle.loads() của Python.
Pickle không phải định dạng thụ động như JSON hay protobuf. Trong quá trình giải tuần tự, nó có thể dựng lại đối tượng Python tùy ý và kích hoạt logic, kể cả đường dẫn dẫn tới thực thi lệnh. Hai RPC handler bị ảnh hưởng là SendPolicyInstructions() và SendObservations(); cả hai nhận byte thô rồi đưa thẳng vào pickle mà không kiểm tra kiểu dữ liệu.
Vì vậy, một payload cài sẵn lời gọi os.system() có thể chạy lệnh ngay khi máy chủ giải tuần tự. Rủi ro còn lớn hơn vì PolicyServer mặc định khởi động bằng add_insecure_port(), không TLS và không xác thực. Ngay cả khi đặt trong mạng nội bộ, chỉ cần có thể kết nối là có thể bị tấn công.
Vì sao hệ thống robot nguy hiểm hơn
Phiên bản được xác nhận bị ảnh hưởng là LeRobot v0.4.3 trên PyPI; các bản cũ hơn dùng cùng kiến trúc suy luận bất đồng bộ nhiều khả năng cũng gặp rủi ro. LeRobot có hơn 21.500 star trên GitHub và là một trong những dự án robot mã nguồn mở nổi bật nhất. Tại thời điểm bài nguồn, bản vá chính thức chưa được phát hành.
Chiếm PolicyServer không giống chiếm một máy chủ ứng dụng thông thường. Các hệ thống này thường chạy với quyền cao trên máy GPU, nằm cạnh dataset và trọng số mô hình, đồng thời kết nối trực tiếp với phần cứng robot vật lý. Trong dây chuyền sản xuất hoặc robot y tế, lỗ hổng phần mềm có thể trở thành vấn đề an toàn vật lý.
Việc cần làm ngay
Nhóm nghiên cứu khuyến nghị thay pickle bằng JSON, trường native của protobuf hoặc safetensors của Hugging Face; bật TLS qua secure gRPC port; buộc dịch vụ vào giao diện mạng riêng; chặn cổng bằng firewall; và ngừng để lộ PolicyServer cho tới khi có bản vá thật sự. Đây là các biện pháp giảm thiểu, còn cách khắc phục bền vững vẫn phụ thuộc vào bản phát hành mới của Hugging Face.
Bài học này gợi lại các lỗ hổng file model PyTorch trước đây. Cộng đồng machine learning dùng pickle lâu nay vì nhanh, tiện và ăn sâu vào hệ sinh thái. Nhưng khi file mô hình, chỉ lệnh chính sách hoặc kênh quan sát nhận dữ liệu từ bên ngoài, sự tiện lợi đó biến thành bề mặt thực thi mã.
Nguồn: CocoLoop, CVE-2026-25874: Hugging Face LeRobot Unauthenticated RCE via Pickle Deserialization (Resecurity); Critical CVE-2026-25874 Leaves Hugging Face LeRobot Open to Unauthenticated RCE (The Hacker News)