
Lỗi trong Vertex AI Python SDK cho phép chiếm quyền upload model qua bucket squatting
"A flaw in the Google Cloud Vertex AI Python SDK allowed attackers to hijack model uploads by squatting on a predictable temporary Cloud Storage bucket name, enabling model replacement and code execution when Vertex AI later loaded the file. Google patched the issue in google-cloud-aiplatform v1.148.0 by adding bucket ownership verification; earlier mitigation in v1.144.0 added a random UUID to the bucket name, and no CVE was assigned at publication."
Rủi ro cao do có thể dẫn tới chiếm quyền model upload và thực thi mã khi Vertex AI tải model; kẻ tấn công còn có thể đánh cắp OAuth token để mở rộng tác động trong tenant.
Có thể gây gián đoạn dịch vụ AI và làm lộ/đánh cắp model artifacts hoặc dữ liệu liên quan, ảnh hưởng uy tín và chi phí xử lý sự cố; mức độ phụ thuộc vào việc dùng mặc định staging bucket và tốc độ khai thác.
Một lỗi trong Google Cloud Vertex AI Python SDK có thể cho phép kẻ tấn công chiếm quyền upload model của nạn nhân và thực thi mã khi Vertex AI tải tệp model để phục vụ. Theo nhóm nghiên cứu Unit 42 (Palo Alto Networks), kỹ thuật này được mô tả là “Pickle in the Middle”; họ cho biết chưa thấy khai thác “trong thực tế” tại thời điểm công bố.
Cơ chế tấn công tận dụng cách SDK chọn temporary Cloud Storage bucket khi người dùng không cấu hình bucket staging. Tên bucket được tạo theo mẫu dự đoán từ project ID và region (ví dụ dạng project-vertex-staging-region). SDK chỉ kiểm tra bucket có tồn tại hay không, nhưng không xác minh quyền sở hữu, nên kẻ tấn công có thể tạo trước bucket dự đoán trong dự án của mình, rồi thay thế model bằng phiên bản độc hại.
Nhiều mô hình Python lưu ở định dạng pickle/joblib, có thể chạy mã khi nạp. Unit 42 ước tính khoảng ~2,5 giây giữa upload và Vertex AI đọc tệp; trong PoC, kẻ tấn công thay thế trong ~1,4 giây. Payload có thể đánh cắp OAuth token từ metadata server và truy cập các tài nguyên trong cùng tenant.
Khuyến nghị: cập nhật google-cloud-aiplatform lên v1.148.0 (bản vá hoàn chỉnh gồm bucket ownership verification), hoặc ít nhất v1.144.0 (thêm UUID vào tên bucket). Đồng thời, đặt rõ staging_bucket do bạn kiểm soát và rà soát phiên bản SDK ở mọi nơi chạy (notebook, CI, pipeline huấn luyện).