RAGFlow w wersji do 0.18.1 włącznie umożliwia przejęcie dowolnego konta użytkownika poprzez atak brute-force na sześciocyfrowe kody weryfikacyjne e-mail. Brak mechanizmu rate limiting sprawia, że atakujący może bez ograniczeń odgadywać kody i samodzielnie rejestrować konta, logować się oraz resetować hasła.
▸ Pokaż oryginał (EN)
RAGFlow through 0.18.1 allows account takeover because it is possible to conduct successful brute-force attacks against email verification codes to perform arbitrary account registration, login, and password reset. Codes are six digits and there is no rate limiting.
Aplikacja stosuje sześciocyfrowe kody weryfikacyjne (zaledwie 1 000 000 możliwych kombinacji) do potwierdzenia rejestracji, logowania oraz resetowania hasła. Ponieważ serwer nie wprowadza żadnych ograniczeń liczby prób (brak rate limiting, blokad IP ani mechanizmu CAPTCHA), atakujący może w zautomatyzowany sposób iterować przez wszystkie możliwe wartości kodu. Po odgadnięciu prawidłowego kodu uzyskuje pełną kontrolę nad procesem rejestracji, logowania lub zmiany hasła dla dowolnego konta powiązanego z danym adresem e-mail.
Atakujący może przejąć kontrolę nad istniejącymi kontami użytkowników (w tym administracyjnymi) poprzez reset hasła lub zalogowanie się bez znajomości oryginalnego hasła, a także rejestrować dowolne nowe konta w systemie. Skutkuje to nieautoryzowanym dostępem do danych i funkcji aplikacji oraz naruszeniem poufności i integralności systemu.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Zaleca się śledzenie commitów w repozytorium projektu (https://github.com/infiniflow/ragflow/commits/main/) w celu identyfikacji wersji zawierającej poprawkę. Do czasu aktualizacji rekomenduje się ograniczenie dostępu do endpointów weryfikacyjnych na poziomie firewall lub reverse proxy oraz wdrożenie zewnętrznych mechanizmów rate limiting.
Infiniflow RAGFlow w wersjach do 0.18.1 włącznie
Podatność wynika z dwóch niezależnych słabości: krótkiej przestrzeni kodów (CWE-307 — niewystarczające zabezpieczenie przed wielokrotnymi próbami uwierzytelnienia) oraz całkowitego braku rate limiting. Wektor CVSS AV:N/PR:N/UI:N oznacza pełną exploitowalność zdalną bez żadnych uprawnień i interakcji użytkownika.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NInfiniflow Ragflow
APPInfiniflow≤ 0.18.1
Powiązane podatności
Zip Slip RCE w RAGFlow — nadpisanie plików przez złośliwe archiwum ZIP
Infiniflow RAGflow: SSRF, Arbitrary File Read i RCE w funkcji web_crawl
RCE w Infiniflow RagFlow — statyczny klucz AuthKey i niebezpieczna deserializacja pickle
RAGFlow is an open-source RAG (Retrieval-Augmented Generation) engine. In versions 0.24.0 and prior, a Server-...
RAGFlow is an open-source RAG (Retrieval-Augmented Generation) engine. In versions prior to 0.23.0, a low-priv...