CVE-2026-48116
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 29 - wyżej niż 29% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Ryzyko polega na możliwości zdalnego wykonania kodu (RCE) w kontenerze AnythingLLM przez atakującego, który może rozmawiać z agentem z włączoną wtyczką filesystem (domyślnie w oficjalnym obrazie Docker). Może to prowadzić do pełnego przejęcia kontenera i dostępu do danych.
Rekomendacja
Należy natychmiast zaktualizować AnythingLLM do wersji 1.13.0 lub nowszej. Jeśli aktualizacja nie jest możliwa, tymczasowo wyłącz wtyczkę filesystem lub ogranicz dostęp do agenta tylko dla zaufanych użytkowników.
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-72917Średnie
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.
- 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-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.
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. Prior to 1.13.0, the filesystem-search-files agent skill passes its LLM-controlled pattern parameter to ripgrep as a positional argument without a -- end-of-options separator. ripgrep parses any argument that starts with - as an option, so a pattern of --pre=/bin/sh turns ripgrep into a script executor: it runs /bin/sh <file> for every file it walks. An attacker who can chat with an agent on a deployment with the filesystem plugin enabled (the default in the official Docker image) can use this, together with the sibling filesystem-write-text-file skill, to run arbitrary commands inside the AnythingLLM server container. This vulnerability is fixed in 1.13.0.

