Lỗ hổng CVE nguy hiểm trong LeRobot gây RCE

Lỗ hổng CVE nguy hiểm trong LeRobot gây RCE

Lỗ hổng CVE nghiêm trọng CVE-2026-25874 đã được công bố trong LeRobot, framework machine learning mã nguồn mở của Hugging Face dành cho robotics thực tế. Đây là một remote code execution (RCE) chưa được vá, cho phép kẻ tấn công chưa xác thực thực thi lệnh hệ thống từ xa trên máy chủ bị ảnh hưởng.

Lỗ hổng CVE-2026-25874 trong LeRobot

Lỗi này được gắn mức CVSS 9.3, phản ánh mức độ rủi ro bảo mật rất cao đối với hạ tầng AI, robot kết nối và dữ liệu độc quyền. Theo thông tin công bố, lỗ hổng ảnh hưởng tới LeRobot phiên bản до 0.5.1.

Với quy mô mã nguồn và mức độ phổ biến lớn trên GitHub, lỗ hổng CVE này tạo ra nguy cơ đáng kể cho các hệ thống triển khai inference trên GPU server, đặc biệt khi dịch vụ xử lý dữ liệu nhạy cảm hoặc điều khiển thiết bị vật lý.

Tham khảo thêm hồ sơ kỹ thuật tại NVD.

Cơ chế khai thác remote code execution

PoC do Chocapikk công bố cho thấy điểm yếu nằm trong mô-đun async inference, nơi các tác vụ nặng được chuyển sang GPU server. Hai thành phần PolicyServerRobotClient sử dụng mô-đun pickle nguyên bản của Python để giải tuần tự hóa dữ liệu nhận qua kênh gRPC không xác thực.

Do server gRPC sử dụng add_insecure_port() mà không có TLS hay cơ chế xác thực, bất kỳ ai có quyền truy cập mạng đều có thể kết nối trực tiếp tới dịch vụ. Kẻ tấn công chỉ cần gửi payload được serial hóa độc hại qua các RPC handler như SendPolicyInstructions hoặc SendObservations để kích hoạt remote code execution.

Việc thực thi mã xảy ra ngay trong quá trình pickle.loads(), trước khi hệ thống kiểm tra kiểu dữ liệu đầu vào. Điều này khiến chuỗi khai thác không cần thông tin xác thực và không đòi hỏi kỹ thuật tấn công phức tạp.

Điểm yếu kỹ thuật chính

  • pickle deserialization trên dữ liệu không đáng tin cậy.
  • gRPC không mã hóa và không xác thực.
  • Không cần credentials để khai thác.
  • Thực thi lệnh hệ thống xảy ra trước bước validation.

Ảnh hưởng của lỗ hổng CVE-2026-25874

Trong các môi trường AI inference, máy chủ thường chạy với quyền hệ thống cao để quản lý GPU và tập dữ liệu lớn. Nếu bị khai thác thành công, kẻ tấn công có thể giành toàn quyền quản trị trên host bị ảnh hưởng.

Tác động tiềm tàng bao gồm di chuyển ngang trong mạng nội bộ, sửa đổi hoặc làm hỏng mô hình machine learning, trích xuất Hugging Face API keys, và can thiệp vào hoạt động của robot kết nối. Đây là rủi ro bảo mật trực tiếp đối với cả dữ liệu và vận hành hệ thống.

Trong bối cảnh này, lỗ hổng CVE không chỉ là vấn đề của ứng dụng web hay API, mà còn có thể trở thành điểm mở đầu cho xâm nhập sâu vào hạ tầng AI.

Nguyên nhân gốc và dấu hiệu trong mã nguồn

Chocapikk ghi nhận một điểm đáng chú ý trong mã nguồn: các thẻ # nosec được đặt ngay cạnh các lời gọi pickle.loads(). Những chú thích này có tác dụng vô hiệu hóa cảnh báo từ security linter, dù công cụ đã phát hiện đúng rủi ro.

Điều này tạo ra một tình huống kỹ thuật rõ ràng: thay vì dùng định dạng an toàn, LeRobot vẫn sử dụng pickle vì tính tiện lợi. Trong khi đó, Hugging Face trước đây đã phát triển safetensors nhằm loại bỏ rủi ro bảo mật nghiêm trọng liên quan đến serialization kiểu pickle.

Hành vi khai thác và luồng thực thi

Chuỗi khai thác bắt đầu khi kẻ tấn công gửi dữ liệu serialized độc hại vào một RPC endpoint đang mở. Payload được nạp vào pickle.loads() và thực thi ngay trong quá trình giải tuần tự hóa.

Vì cơ chế này xảy ra trước validation, hệ thống không có cơ hội chặn nội dung bất thường. Đây là đặc trưng thường gặp của các lỗ hổng CVE liên quan đến deserialization không an toàn, đặc biệt khi dịch vụ exposed ra mạng mà không có lớp bảo vệ bổ sung.

Biện pháp phòng vệ trước bản vá chính thức

Bản vá vĩnh viễn đang được lên kế hoạch cho LeRobot version 0.6.0, với thay thế pickle bằng safetensorsJSON. Trước khi cập nhật bản vá bảo mật chính thức, tổ chức cần triển khai ngay các biện pháp phòng vệ sau:

  • Hạn chế truy cập mạng tới cổng gRPC của dịch vụ.
  • Không để gRPC server chạy ở chế độ không mã hóa khi triển khai thực tế.
  • Rà soát và loại bỏ các lời gọi pickle.loads() trên dữ liệu đầu vào không tin cậy.
  • Kiểm tra toàn bộ các tag # nosec gần vùng deserialization.
  • Ưu tiên cập nhật bản vá khi LeRobot 0.6.0 được phát hành.

IOC

  • CVE: CVE-2026-25874
  • Ảnh hưởng phiên bản: LeRobot đến 0.5.1
  • Thành phần liên quan: PolicyServer, RobotClient, async inference module
  • Hàm/mẫu kỹ thuật: add_insecure_port(), pickle.loads(), SendPolicyInstructions, SendObservations
  • Định dạng có rủi ro: pickle serialization
  • Giao thức/triển khai: gRPC không TLS, không xác thực

Điểm cần theo dõi trong phát hiện xâm nhập

Vì đây là remote code execution qua deserialization, các hệ thống IDS nên ưu tiên giám sát lưu lượng đến cổng gRPC của LeRobot, đặc biệt là các request có dấu hiệu payload serialized bất thường. Ngoài ra, cần theo dõi tiến trình phát sinh từ service inference, thay đổi quyền hệ thống và các hành vi truy cập bất thường tới khóa API hoặc mô hình ML.

Trong môi trường vận hành AI, lỗ hổng CVE kiểu này thường đòi hỏi phản ứng nhanh: cô lập dịch vụ, khóa truy cập mạng, rà soát cấu hình TLS, và chuẩn bị kế hoạch cập nhật bản vá ngay khi có phiên bản an toàn.