Apa yang terjadi
CVE-2026-115886 (CWE-470 refleksi tidak aman / CWE-918 SSRF) adalah kerentanan deserialisasi-ke-SSRF di titik akhir scorer dan GenAI-evaluate MLflow, dipublikasikan 2026-10-23. Deserialisasi yang rentan terjadi sebelum pencarian penyimpanan pelacakan atau pengiriman tugas, dan penyerang dapat mengarahkan fallback LiteLLM untuk membuat permintaan keluar ke host internal dengan header dan isi yang dikendalikan penyerang.
Mengapa penting
MLflow digunakan secara luas sebagai lapisan pelacakan/registri model dalam pipeline MLOps dan GenAI. Karena titik akhir yang terpengaruh menerima input serialisasi tanpa autentikasi dan dapat diarahkan ke SSRF terhadap layanan internal (termasuk titik akhir metadata cloud dan backend model/agen internal), ini memberi penyerang eksternal pijakan ke jaringan internal penerapan AI — jalur penyalahgunaan klasik dari platform ML ke infrastruktur sekitarnya.
Vektor serangan
Penyerang tanpa autentikasi melakukan POST data scorer pihak ketiga yang diserialisasi ke titik akhir scorer/GenAI-evaluate. Scorer.model_validate_json menyelesaikan kelas melalui daftar izin jalur modul tanpa membatasi kelas yang dipilih atau argumen konstruktornya. Dengan trulens/trulens-providers-litellm terinstal, penyerang dapat memilih mlflow.genai.scorers.trulens, mengarahkan URI model ke luar registri penyedia asli MLflow sehingga eksekusi jatuh ke fallback LiteLLM, dan memberikan nilai api_base/api_key yang menyebabkan server mengeluarkan permintaan keluar ke host yang dipilih penyerang atau internal dengan header dan isi yang dikendalikan penyerang.
Sistem yang terdampak
MLflow >= 3.12.0rc0, < 3.17.0
Mitigasi
Tingkatkan ke MLflow 3.17.0 (commit perbaikan bac30b4; advisory GHSA-2wqp-q3c6-ccj5). Solusi sementara: jangan instal paket opsional trulens/trulens-providers-litellm jika titik akhir scorer diekspos, dan jangan ekspos /ajax-api/.../scorer/invoke tanpa autentikasi.