W RAGFlow w wersji 0.24.0 i wcześniejszych istnieje podatność typu Server-Side Template Injection (SSTI) w generatorze promptów opartym na szablonach Jinja2, pozwalająca uwierzytelnionemu użytkownikowi na wykonanie dowolnych poleceń systemowych na serwerze. Zagrożenie jest krytyczne, ponieważ każdy zarejestrowany użytkownik – bez uprawnień administratora – może je wykorzystać.
▸ Pokaż oryginał (EN)
RAGFlow is an open-source RAG (Retrieval-Augmented Generation) engine. In 0.24.0 and earlier, a Jinja2 template injection in the prompt generator (rag/prompts/generator.py) allows any authenticated user to execute arbitrary OS commands on the server. Any normal user can register, create a Canvas workflow with a DuckDuckGo + LLM component chain, and trigger the SSTI.
Plik rag/prompts/generator.py przetwarza dane wejściowe użytkownika za pomocą silnika szablonów Jinja2 bez odpowiedniej sanityzacji, co skutkuje podatnością CWE-1336 (nieprawidłowe neutralizowanie specjalnych elementów w szablonach). Atakujący tworzy przepływ pracy Canvas zawierający komponent DuckDuckGo połączony z komponentem LLM i wstrzykuje złośliwy payload Jinja2 do pola promptu. Po uruchomieniu przepływu serwer ewaluuje szablon, co prowadzi do wykonania osadzonych w nim poleceń systemowych. Podatność nie wymaga podwyższonych uprawnień – wystarczy posiadanie zwykłego konta użytkownika.
Atakujący może uzyskać pełną kontrolę nad serwerem poprzez zdalne wykonanie dowolnych poleceń systemu operacyjnego (RCE), co oznacza możliwość kradzieży danych, instalacji backdoorów, eskalacji uprawnień oraz naruszenia poufności, integralności i dostępności całego systemu. Ze względu na zakres oddziaływania (Scope: Changed w wektorze CVSS) skutki mogą wykraczać poza bezpośredni komponent aplikacji.
Należy zastosować patche dostępne u producenta zgodnie z referencjami (advisory GHSA-wpg4-h5g2-jxm6 na GitHub). Do czasu aktualizacji zaleca się ograniczenie możliwości rejestracji nowych użytkowników oraz monitorowanie aktywności w module Canvas. Jeśli RAGFlow jest wystawiony publicznie, należy rozważyć tymczasowe odcięcie dostępu lub umieszczenie instancji za firewallem/VPN.
RAGFlow (open-source, projekt infiniflow/ragflow) w wersji 0.24.0 i wcześniejszych
Podatność posiada publicznie dostępne security advisory na GitHub (GHSA-wpg4-h5g2-jxm6) z opisem kroków reprodukcji, co znacząco obniża próg wejścia dla potencjalnych atakujących.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H