CVE-2026-72917
ŚrednieCVSS 5.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 19 - wyżej niż 19% wszystkich znanych CVE
Streszczenie
W AnythingLLM w wersjach od 1.0.0 do 1.15.0 proces odzyskiwania konta bez uwierzytelnienia ma wadę w funkcji recoverAccount(), która nie przycina wartości kodów odzyskiwania przed ich deduplikacją. Dzięki temu atakujący, znając nazwę użytkownika i jeden kod odzyskiwania, może dwukrotnie wysłać ten sam kod z różnymi spacjami i spełnić wymóg dwóch kodów, a następnie przejąć konto, w tym administratora.
Ocena ryzyka
Ryzyko przejęcia konta administratora i pełnej kontroli nad aplikacją, co może prowadzić do naruszenia poufności danych i integralności systemu.
Rekomendacja
Zaktualizuj AnythingLLM do wersji nowszej niż 1.15.0, w której naprawiono ten problem. Jeśli aktualizacja nie jest możliwa, ogranicz dostęp do funkcji odzyskiwania konta.
Inne podatności w AnythingLLM
Zobacz wszystkie- CVE-2026-24478Wysokie
AnythingLLM przed wersją 1.10.0 ma krytyczną podatność na przechodzenie po ścieżkach (Path Traversal) w integracji DrupalWiki, co pozwala złośliwemu administratorowi (lub atakującemu, który przekona administratora do skonfigurowania złośliwego adresu URL DrupalWiki) na zapisywanie dowolnych plików na serwerze. Może to prowadzić do zdalnego wykonania kodu (RCE).
- CVE-2026-24477Wysokie
AnythingLLM przed wersją 1.10.0, gdy jest skonfigurowany z Qdrant jako bazą wektorową z kluczem API, może ujawnić ten klucz w postaci zwykłego tekstu nieuwierzytelnionym użytkownikom przez endpoint `/api/setup-complete`. Ujawnienie klucza pozwala atakującemu na pełny dostęp do bazy wektorowej Qdrant.
- CVE-2026-88055Średnie
AnythingLLM w wersji 1.16.1 i wcześniejszych pozwala roli manager przechowywać wartości meta_page_title lub meta_page_favicon przez /api/admin/system-preferences, które są wstawiane do HTML strony głównej bez escapowania. Wartości przechodzą niezmienione przez systemSettings.js i trafiają do MetaGenerator.generate(), gdzie są konkatenowane do HTML.
- CVE-2026-55611Nieznane
Podatność w AnythingLLM w wersjach od 1.11.1 do 1.14.1 umożliwia menedżerowi lub administratorowi (w trybie wieloużytkownikowym) usunięcie pliku przetworzonego dowolnego innego użytkownika w dowolnym obszarze roboczym, nawet jeśli nie jest jego członkiem. Problem wynika z braku sprawdzenia własności pliku w przepływie POST /api/workspace/:slug/embed-parsed-file/:fileId, gdzie plik jest usuwany wyłącznie na podstawie identyfikatora numerycznego, a serwer zwraca komunikat „Nie znaleziono pliku” mimo faktycznego usunięcia.
- CVE-2026-48789Średnie
Aplikacja AnythingLLM przed wersją 1.13.0 na systemie Windows pozwalała na wykorzystanie zakodowanej absolutnej ścieżki do folderu dokumentów, co mogło prowadzić do uzyskania dostępu do plików poza zamierzonym katalogiem dokumentów.
- CVE-2026-48116Wysokie
W AnythingLLM przed wersją 1.13.0, umiejętność agenta filesystem-search-files przekazuje wzorzec kontrolowany przez LLM do narzędzia ripgrep jako argument pozycyjny bez separatora --. ripgrep interpretuje argumenty zaczynające się od - jako opcje, więc wzorzec --pre=/bin/sh zamienia ripgrep w executor skryptów, uruchamiając /bin/sh dla każdego pliku. Atakujący mogą to wykorzystać wraz z umiejętnością filesystem-write-text-file do wykonania dowolnych poleceń w kontenerze serwera.
- CVE-2026-47713Niskie
W AnythingLLM przed wersją 1.13.0, zatwierdzony token urządzenia mobilnego utworzony w trybie jednoosobowym może przetrwać migrację do trybu wieloosobowego, nawet gdy rekord urządzenia ma userId = null. W trybie wieloosobowym taki nieaktualny token jest nadal akceptowany przez middleware uwierzytelniania mobilnego, co pozwala na wyliczenie obszarów roboczych i treści bez filtrowania per-użytkownika.
- CVE-2026-45403Niskie
W AnythingLLM przed wersją 1.13.0 narzędzie do kopiowania plików agenta sprawdza tylko najwyższy poziom ścieżek źródłowych i docelowych. Rekurencyjna funkcja kopiująca nie weryfikuje każdego elementu potomnego ani nie odrzuca dowiązań symbolicznych, co pozwala na ominięcie ograniczeń i skopiowanie plików spoza dozwolonego katalogu głównego.
- CVE-2026-42456Średnie
Podatność IDOR w AnythingLLM przed wersją 1.12.1 umożliwia uwierzytelnionemu użytkownikowi dostęp do odpowiedzi asystenta innego użytkownika w formie audio. Endpoint GET /api/workspace/:slug/tts/:chatId nie sprawdza własności czatu, tylko członkostwa w przestrzeni roboczej.
- CVE-2025-63390Średnie
W AnythingLLM v1.8.5 wykryto podatność polegającą na obejściu uwierzytelnienia w punkcie końcowym /api/workspaces. Brak odpowiednich kontroli uwierzytelniania umożliwia nieuwierzytelnionym zdalnym atakującym enumerację i pobieranie szczegółowych informacji o wszystkich skonfigurowanych przestrzeniach roboczych, w tym identyfikatorach, konfiguracjach modeli AI, promptach systemowych, parametrach operacyjnych i ustawieniach wyszukiwania wektorowego.
Oryginalny opis (angielski, źródło NVD)
AnythingLLM is an application that turns pieces of content into context that any LLM can use as references during chatting. From 1.0.0 to 1.15.0, AnythingLLM's unauthenticated account-recovery flow in server/utils/PasswordRecovery/index.js uses recoverAccount() to deduplicate the raw recoveryCodes values before trimming them, so one valid code submitted twice with different surrounding whitespace can satisfy the two-code check. Each normalized value can also match the same stored hash instead of consuming a distinct hash. An attacker who knows the target username and one recovery code can call POST /api/system/recover-account in multi-user mode, receive a password-reset token, and use POST /api/system/reset-password to take over the account, including an administrator account.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

