Phân tích chuyên sâu đã phát hiện nhiều **lỗ hổng zero-day nghiêm trọng** trong **PickleScan**, một công cụ mã nguồn mở phổ biến dùng để quét các mô hình học máy (ML) nhằm phát hiện mã độc. Các lỗ hổng này có thể cho phép kẻ tấn công thực thi mã tùy ý và xâm nhập hệ thống, gây ra rủi ro chuỗi cung ứng đáng kể cho lĩnh vực Trí tuệ Nhân tạo (AI).
Bối cảnh và Vai trò của PickleScan trong Hệ sinh thái AI
PickleScan được ứng dụng rộng rãi trong thế giới AI, bao gồm cả các nền tảng lớn như Hugging Face. Mục tiêu của công cụ này là kiểm tra các mô hình PyTorch được lưu trữ bằng định dạng **pickle** của Python.
Định dạng **pickle** mang lại sự linh hoạt cao nhưng đồng thời tiềm ẩn nhiều mối nguy hiểm. Việc tải một tệp pickle có thể thực thi mã Python tùy ý, đồng nghĩa với việc một tệp mô hình có khả năng bí mật chứa các lệnh để đánh cắp dữ liệu, cài đặt backdoor hoặc chiếm quyền điều khiển hệ thống.
Mặc dù PickleScan được thiết kế để mitigate những rủi ro này, nhóm nghiên cứu của JFrog đã phát hiện ra các lỗ hổng cho phép kẻ tấn công **bỏ qua các cơ chế kiểm tra** của PickleScan. Điều này dẫn đến việc mã độc vẫn có thể được thực thi khi mô hình được tải trong PyTorch.
Phân tích Chuyên sâu về các Lỗ hổng Zero-day PickleScan
Ba lỗ hổng zero-day PickleScan đã được xác định, mỗi lỗ hổng đều khai thác một khía cạnh khác nhau của quy trình quét để né tránh phát hiện.
CVE-2025-10155: Né tránh Kiểm tra qua Thay đổi Phần mở rộng Tệp
Lỗ hổng đầu tiên, được gán mã **CVE-2025-10155**, cho phép kẻ tấn công né tránh quá trình quét đơn giản bằng cách thay đổi phần mở rộng của tệp. Một tệp pickle độc hại có thể được đổi tên thành các phần mở rộng kiểu PyTorch như **.bin** hoặc **.pt**.
Khi đó, PickleScan sẽ bị nhầm lẫn và không phân tích nội dung của tệp, trong khi PyTorch vẫn sẽ tải và thực thi tệp đó. Điều này tạo ra một điểm mù đáng kể, nơi mã độc có thể hoạt động mà không bị phát hiện bởi công cụ bảo mật.
CVE-2025-10156: Vô hiệu hóa Kiểm tra Toàn vẹn Tệp ZIP
Lỗ hổng thứ hai, **CVE-2025-10156**, khai thác cách PickleScan xử lý các kho lưu trữ ZIP. Kẻ tấn công có thể làm hỏng các giá trị kiểm tra toàn vẹn (CRC) bên trong tệp ZIP, gây ra sự cố hoặc lỗi cho PickleScan.
Dù PickleScan không thể xử lý tệp, PyTorch vẫn có thể tải mô hình từ cùng một kho lưu trữ bị hỏng đó. Kịch bản này tạo ra một lỗ hổng an ninh mạng nghiêm trọng, cho phép mã độc tiềm ẩn trốn tránh các biện pháp kiểm soát và bảo mật.
CVE-2025-10157: Bỏ qua Danh sách Đen Module Nguy hiểm
Lỗ hổng thứ ba, **CVE-2025-10157**, nhắm vào danh sách đen của các module “không an toàn” mà PickleScan sử dụng. Kẻ tấn công có thể lợi dụng các lớp con (subclasses) hoặc các import nội bộ của các module nguy hiểm, chẳng hạn như **asyncio**.
Bằng cách này, mã độc có thể vượt qua nhãn “Dangerous” (Nguy hiểm) và chỉ bị đánh dấu là “Suspicious” (Đáng ngờ), mặc dù các lệnh tùy ý vẫn có thể được thực thi. Điều này làm suy yếu khả năng phân loại và cảnh báo của PickleScan đối với các mối đe dọa thực sự.
Rủi ro Chuỗi Cung ứng và Tác động Nghiêm trọng từ lỗ hổng zero-day PickleScan
Do nhiều nền tảng và công ty dựa vào PickleScan như một lớp phòng thủ chính, các lỗ hổng này tạo ra một **rủi ro chuỗi cung ứng** nghiêm trọng cho các mô hình AI. Kẻ tấn công có thể đưa các mô hình độc hại vào chuỗi cung ứng, từ đó lây nhiễm vào các hệ thống hạ nguồn.
Những lỗ hổng này có thể dẫn đến **chiếm quyền điều khiển** hệ thống, **đánh cắp dữ liệu** nhạy cảm, hoặc cài đặt các backdoor. Tác động của một cuộc tấn công mạng thành công có thể lan rộng, ảnh hưởng đến độ tin cậy và an toàn của các ứng dụng AI trên quy mô lớn.
Việc phát hiện các **lỗ hổng zero-day PickleScan** này nhấn mạnh tầm quan trọng của việc kiểm tra bảo mật liên tục trong các công cụ phụ trợ, đặc biệt là trong các lĩnh vực mới nổi như AI/ML.
Lộ trình Khắc phục và Khuyến nghị Bảo mật
Nhóm nghiên cứu của JFrog đã báo cáo các lỗ hổng này cho người duy trì PickleScan vào ngày **29 tháng 6 năm 2025**. Các bản sửa lỗi đã được phát hành trong phiên bản **0.0.31** vào ngày **2 tháng 9 năm 2025**.
Người dùng được khuyến nghị nâng cấp ngay lập tức lên phiên bản **0.0.31** để vá các lỗ hổng zero-day PickleScan. Ngoài ra, cần thực hiện các biện pháp phòng ngừa sau:
- Tránh sử dụng các mô hình dựa trên pickle không an toàn bất cứ khi nào có thể.
- Triển khai các lớp phòng thủ đa dạng, bao gồm các môi trường sandbox để cô lập các mô hình.
- Ưu tiên sử dụng các định dạng an toàn hơn như **Safetensors** thay vì pickle khi lưu trữ và chia sẻ mô hình.
- Sử dụng các kho lưu trữ mô hình an toàn với các quy trình kiểm duyệt và xác minh chặt chẽ.
Để biết thêm chi tiết về quá trình phát hiện và phân tích kỹ thuật, bạn có thể tham khảo bài viết gốc từ JFrog: Unveiling 3 Zero-Day Vulnerabilities in PickleScan.










