CVE-2025-68664 atau yang lebih dikenal dengan sebutan “LangGrinch” adalah sebuah celah keamanan sangat kritis yang ditemukan pada paket Python LangChain Core. Secara sederhana, kerentanan ini merupakan masalah serialization injection yang memungkinkan penyerang untuk mencuri rahasia sensitif atau bahkan memanipulasi respons model bahasa besar (LLM) melalui teknik prompt injection.
Kalian mungkin sudah tahu kalau LangChain Core itu adalah jantung dari ekosistem LangChain yang menyediakan antarmuka dasar buat membangun aplikasi bertenaga AI. Nah, masalah utamanya sepertinya terletak pada bagaimana sistem menangani data saat proses serialisasi. Peneliti keamanan bernama Yarden Porat menemukan kalau fungsi dumps() dan dumpd() di dalam pustaka ini nggak melakukan escaping atau pembersihan pada kamus (dictionary) yang mengandung kunci “lc”. Padahal, kunci “lc” ini sebenarnya dipakai secara internal oleh LangChain untuk menandai objek-objek resminya.
Jadi, begitunya alurnya: ketika ada data dari pengguna yang sengaja disisipi struktur kunci “lc”, sistem malah menganggap data itu sebagai objek LangChain yang sah dan bukan sekadar data teks biasa. Begitu data jahat ini berhasil masuk ke dalam proses orkestrasi LangChain, penyerang bisa memicu pembuatan objek sembarangan yang nggak aman. Rasanya celah ini cukup fatal karena skor risikonya (CVSS) mencapai 9.3 dari 10.0, yang mana itu tinggi banget buat standar keamanan perangkat lunak.

Dampak dari eksploitasi ini pun nggak main-main. Penyerang sepertinya bisa mengekstraksi rahasia dari environment variables (seperti API key) kalau proses deserialisasi dijalankan dengan pengaturan default yang lama. Selain itu, mereka bisa menyusupkan kelas-kelas tertentu dalam ruang nama yang dipercaya seperti langchain_core atau langchain_community. Yang paling ngeri, celah ini berpotensi menyebabkan eksekusi kode jarak jauh alias remote code execution lewat template Jinja2. Kuranglebihnya, penyerang bisa menyusup lewat kolom metadata atau respons tambahan yang biasanya dianggap aman-aman saja oleh para pengembang.
Buat kalian yang sedang mengelola proyek menggunakan pustaka ini, ada beberapa langkah teknis yang perlu segera dilakukan untuk menutup celah LangGrinch:
- Melakukan Pembaruan Versi Pustaka
Kalian harus segera melakukan update ke versi yang sudah diperbaiki. Untuk pengguna Python, pastikan kalian menggunakan langchain-core versi 1.2.5 ke atas (untuk lini 1.x) atau versi 0.3.81 ke atas (untuk lini 0.x). Jangan ditunda karena celah ini sudah dipublikasikan secara luas. - Mengatur Parameter allowed_objects
Setelah melakukan pembaruan, kalian akan menemukan parameter baru bernama allowed_objects pada fungsi load() dan loads(). Gunakan parameter ini untuk menentukan daftar kelas mana saja yang benar-benar kalian izinkan untuk diproses. Ini kayak bikin daftar tamu eksklusif supaya objek nggak dikenal nggak bisa masuk sembarangan. - Mematikan Fitur secrets_from_env
Secara default, versi terbaru sekarang sudah mengatur secrets_from_env menjadi False. Pastikan kalian nggak menyalakannya kembali kecuali benar-benar butuh dan sudah paham risikonya. Ini penting banget buat mencegah bocornya API key dari lingkungan server kalian. - Memblokir Penggunaan Jinja2 Secara Default
Sistem terbaru sekarang otomatis memblokir template Jinja2 yang nggak terpercaya dalam proses deserialisasi. Pastikan alur kerja aplikasi kalian nggak bergantung pada template yang bisa dimanipulasi oleh input pengguna dari luar. - Audit Input pada LangChain.js
Kalau kalian pakai versi JavaScript, ingat kalau ada celah serupa (CVE-2025-68665). Segera perbarui @langchain/core ke versi 1.1.8 atau 0.3.80, dan paket langchain ke versi 1.2.3 atau 0.3.37. Mekanisme serangannya kira-kira hampir sama persis dengan versi Python.
Fenomena LangGrinch ini sebenernya memberikan kita pelajaran berharga kalau output dari LLM itu jangan pernah dianggap sebagai data yang tepercaya. Begitu output AI langsung masuk ke fungsi sistem tanpa diperiksa, di situlah celah keamanan klasik bertemu dengan teknologi modern.
Kita seringkali terlalu fokus pada kecanggihan AI sampai lupa kalau prinsip dasar keamanan input validation itu tetap harga mati. Itulah risiko yang muncul kalau kita terlalu percaya sama data kiriman pengguna atau bahkan data hasil olahan AI itu sendiri. Sebaiknya kalian segera cek dependensi proyek masing-masing dan lakukan patching sebelum ada pihak nggak bertanggung jawab yang memanfaatkan situasi ini.
