Apa yang terjadi
Kesalahan logika dalam fickling milik Trail of Bits — alat analisis statis yang banyak digunakan untuk mendeteksi file model ML berbasis pickle yang berbahaya — menyebabkan perlindungan intinya (MLAllowlist) menjadi tidak berfungsi, membiarkan payload pickle berbahaya yang dirancang melewati pemeriksaan keamanannya dan mengeksekusi kode arbitrer saat deserialisasi. Dipublikasikan ke NVD 4 Juli 2026, CVSS 8.8 (High).
Mengapa penting
fickling adalah alat pemindai standar de-facto yang digunakan di seluruh ekosistem ML (termasuk tooling Hugging Face Hub) untuk memeriksa model yang diserialisasi pickle yang tidak terpercaya sebelum dimuat. Alat keamanan yang pemeriksaan intinya gagal secara diam-diam terbuka berarti setiap pipeline yang menggating pemuatan model berdasarkan putusan fickling dapat dengan tidak disadari mengeksekusi kode yang dikendalikan penyerang dari file model yang terracuni — secara langsung menguntungkan kepercayaan rantai pasokan ML dalam skala besar.
Vektor serangan
Analisis pass UnsafeImportsML secara tanpa syarat memanggil AnalysisContext.shorten_code(node) pada setiap node impor yang diperiksanya, mengisi set 'reported_shortened_code' bersama sebagai efek samping. Ini menyebabkan pass MLAllowlist berikutnya melewatkan pemeriksaan allowlist sepenuhnya, menjadi kode mati. Akibatnya, modul apa pun di luar denylist UNSAFE_IMPORTS (termasuk modul pustaka standar non-ML yang mampu eksekusi kode arbitrer) dapat diseteruskan melalui fickling.check_safety() dan akan dilaporkan LIKELY_SAFE, kemudian dieksekusi melalui pickle.loads() oleh aplikasi apa pun yang mempercayai putusan fickling.
Sistem yang terdampak
Trail of Bits fickling ≤ 0.1.11 (diperbaiki dalam 0.1.12)
Mitigasi
Tingkatkan ke fickling 0.1.12 atau lebih baru, yang memperbaiki kesalahan logika yang memulihkan penegakan MLAllowlist. Jangan bergantung hanya pada putusan keamanan fickling untuk file pickle yang tidak terpercaya — gabungkan dengan sandboxing atau migrasi format safetensors.