Penjelasan teknis
Kerentanan Server-Side Template Injection (SSTI) Jinja2 dalam generator prompt RAGFlow (rag/prompts/generator.py) memungkinkan pengguna terautentikasi apa pun — termasuk akun gratis yang terdaftar secara normal — untuk menjalankan perintah OS arbitrer pada server host. Eksploitasi hanya memerlukan pengguna membuat alur kerja Canvas dengan rantai komponen DuckDuckGo + LLM; impor saja sudah cukup untuk memicu eksekusi kode. Skor CVSS adalah 9.9 (Kritis). RAGFlow adalah mesin RAG sumber terbuka dengan lebih dari 52.000 bintang GitHub.
Vektor serangan
Pengguna web terautentikasi membuat atau mengimpor alur kerja Canvas yang dirancang khusus; generator prompt merender template Jinja2 tanpa sandbox, memungkinkan injeksi perintah OS melalui `os.popen` Python melalui rantai `cycler.__init__.__globals__` Jinja2. Tidak memerlukan hak istimewa administrator — pengguna terdaftar apa pun sudah cukup.
Sistem yang terdampak
Versi RAGFlow 0.24.0 dan lebih awal (mesin RAG sumber terbuka, infiniflow/ragflow di GitHub). Hanya penyebaran yang di-host sendiri. Penyebaran yang dikelola cloud mungkin bervariasi tergantung konfigurasi penyedia.
Mitigasi
Tingkatkan ke versi yang diperbaiki (lihat GHSA-wpg4-h5g2-jxm6). Jika upgrade segera tidak memungkinkan, nonaktifkan pembuatan alur kerja Canvas oleh pengguna yang tidak tepercaya, terapkan isolasi tingkat jaringan untuk server RAGFlow, dan terapkan prinsip hak istimewa minimal sehingga proses RAGFlow tidak berjalan sebagai root. Tinjau log server untuk invokasi subproses yang tidak biasa dari proses ragflow.