flawopen.com/AI Security/lmcache-multiprocess-pickle-deserialization-cve-2026-105192
CVE-2026-105192: deserialisasi pickle tanpa autentikasi pada mode multiproses LMCache
CVE-2026-105192 memungkinkan peer tanpa autentikasi yang dapat menjangkau transport multiproses LMCache memicu deserialisasi pickle yang tidak aman. Periksa apakah endpoint ZMQ dapat dirutekan, batasi akses, dan pantau perbaikan vendor.[1], [2]
LMCache menerima paket tersegel dari peer jaringan lalu membukanya dengan mekanisme yang dapat menjalankan instruksi tersembunyi. Masalah terjadi sebelum server memeriksa jenis pesan yang dinyatakan paket tersebut.[1], [2]
Konsep Kunci & Istilah
CWE-502: deserialisasi tidak aman- pickle Python dapat menjalankan perilaku saat membangun ulang objek dan tidak aman untuk data dari peer jaringan yang tidak tepercaya.[1], [2]
Mode multiproses LMCache- Mode ketika komponen LMCache berkomunikasi melalui transport ZeroMQ. Catatan CVE menjelaskan endpoint ROUTER tanpa autentikasi.[2], [5]
Ekstensi MessagePack- Nilai ekstensi MessagePack diteruskan ke DeviceIPCWrapper.Deserialize saat decoding, sebelum pemilihan jenis permintaan.[2], [4], [3]
Batas paparan- Menurut catatan CVE, transport secara default terikat ke localhost. --host yang dapat dirutekan atau jaringan cluster yang dapat dijangkau mengubah siapa yang dapat mengirim pesan.[2], [5]
Versi terdampak- Pengungkapan menyebut versi 0.3.9 hingga 0.5.5, termasuk kandidat rilis 0.5.6 dan cabang pengembangan, per 2026-10-07.[1], [2]
CWE-306: autentikasi tidak ada untuk fungsi kritis- Catatan CVE juga menetapkan
CWE-306karena ZeroMQ ROUTER tidak mengautentikasi peer. Ini merupakan kelemahan terpisah pada batas transport, berbeda dari rekonstruksi pickle yang tidak aman (CWE-502). Eksposur tetap memerlukan endpoint yang dapat dijangkau; bind localhost bawaan saja tidak membuatnya dapat diakses dari jarak jauh.[2]
Pemetaan kerangka kerja
Alur Serangan Langkah demi Langkah
Kondisi deployment dan respons
| Kondisi | Penilaian |
|---|---|
| Mode multiproses dinonaktifkan | Jalur CVE ini tidak aktif. |
| Mode multiproses hanya bind ke loopback | Peer jaringan jarak jauh seharusnya tidak dapat menjangkau endpoint; verifikasi jaringan host dan batas kepercayaan lokal. |
| Bind dapat dirutekan atau port cluster terbuka | Anggap berpotensi dapat dijangkau; batasi akses segera dan periksa hak proses. |
| Versi terdampak | Pengungkapan menyebut versi 0.3.9 hingga 0.5.5, termasuk kandidat rilis 0.5.6 dan cabang pengembangan, per 2026-10-07. |
Kode Sumber: Rentan vs Aman
Catatan CVE Program mengatribusikan CVE-2026-105192 kepada JFrog dan mendokumentasikan jalur ekstensi MessagePack → DeviceIPCWrapper.Deserialize → pickle.loads, bind localhost default, opsi --host yang dapat dirutekan, serta CVSS 9,8. Source upstream mengonfirmasi pemanggilan deserializer. Artikel ini tidak menyertakan pickle yang dipersenjatai dan tidak mengklaim patch vendor telah tersedia. Endpoint harus dapat dijangkau; bind lokal default saja tidak membuatnya dapat diakses dari jaringan jarak jauh. Contoh kode sementara menonaktifkan jalur decoding tersebut dan bukan patch LMCache siap pakai; evaluasi dampak operasional dan isolasi jaringan sambil menunggu perbaikan yang didukung.[2], [1], [3], [4], [5]
@staticmethod
def Deserialize(data: bytes) -> DeviceIPCWrapper:
return pickle.loads(data)
@staticmethod
def Deserialize(data: bytes) -> DeviceIPCWrapper:
# Mitigasi sementara fail-closed, bukan patch upstream.
raise PermissionError("LMCache peer deserialization disabled pending vendor fix")
Daftar Periksa Penguatan Sistem Rekayasa
- ✓Inventarisasi deployment LMCache dan tandai penggunaan mode multiproses/distribusi serta versi paket dan kontainer.[1], [2]
- ✓Periksa alamat bind ZMQ dan rute jaringan sebenarnya. Jaringan privat tidak cukup jika workload atau tenant yang tidak tepercaya dapat menjangkau endpoint.[2], [5]
- ✓Sampai vendor menyediakan perbaikan, nonaktifkan transport multiproses jika memungkinkan atau batasi ke loopback untuk operasi satu host. Jika banyak node wajib digunakan, batasi port hanya untuk peer yang secara eksplisit tepercaya; ini mengurangi keterjangkauan, tetapi tidak membuat pickle aman. Untuk deployment routable di masa mendatang, wajibkan peer ZMQ terautentikasi (misalnya CURVE atau HMAC per pesan) dan ganti pickle dengan format khusus data yang tervalidasi; allowlist firewall bukan autentikasi.
- ✓Jalankan layanan dengan akun khusus tanpa hak istimewa dan hapus kapabilitas kontainer yang tidak diperlukan; catatan CVE menyebut kontainer resmi berjalan sebagai root.[2]
- ✓Pantau advisori keamanan dan rilis LMCache. Perbarui hanya ke versi yang secara eksplisit memperbaiki
CVE-2026-105192; materi pengungkapan yang ditinjau belum menyebut versi yang telah diperbaiki.[1], [2] - ✓Periksa koneksi tak terduga ke port transport multiproses (default 5555 menurut catatan CVE) dan selidiki paparan sebelum menyimpulkan adanya kompromi.[2], [5]
Sumber
- JFrog Security Research: CVE-2026-105192 mechanics and mitigations
- CVE Program record CVE-2026-105192 (JFrog CNA record)
- LMCache upstream: DeviceIPCWrapper deserialization source
- LMCache upstream: MessagePack extension decoding
- LMCache upstream: multiprocess ZeroMQ transport
- The Hacker News: critical LMCache pickle deserialization disclosure