AnythingLLM Desktop w wersji 1.11.1 i wcześniejszych zawiera podatność typu XSS w potoku renderowania czatu, która z powodu niebezpiecznej konfiguracji Electron eskaluje do Remote Code Execution na systemie operacyjnym hosta. Podatność działa z domyślnymi ustawieniami i nie wymaga żadnej dodatkowej interakcji użytkownika poza normalnym korzystaniem z czatu.
▸ Pokaż oryginał (EN)
AnythingLLM is an application that turns pieces of content into context that any LLM can use as references during chatting. In 1.11.1 and earlier, AnythingLLM Desktop contains a Streaming Phase XSS vulnerability in the chat rendering pipeline that escalates to Remote Code Execution on the host OS due to insecure Electron configuration. This works with default settings and requires no user interaction beyond normal chat usage. The custom markdown-it image renderer in frontend/src/utils/chat/markdown.js interpolates token.content directly into the alt attribute without HTML entity escaping. The PromptReply component renders this output via dangerouslySetInnerHTML without DOMPurify sanitization — unlike HistoricalMessage which correctly applies DOMPurify.sanitize().
Niestandardowy renderer obrazów oparty na markdown-it (plik frontend/src/utils/chat/markdown.js) wstawia wartość token.content bezpośrednio do atrybutu alt bez kodowania encji HTML. Komponent PromptReply renderuje ten wynik przez dangerouslySetInnerHTML bez sanityzacji za pomocą DOMPurify — w przeciwieństwie do komponentu HistoricalMessage, który poprawnie stosuje DOMPurify.sanitize(). Osadzony złośliwy kod JavaScript jest następnie wykonywany w kontekście Electrona, gdzie insecure domyślna konfiguracja pozwala na ucieczkę z sandbox przeglądarki i wykonanie kodu na poziomie systemu operacyjnego.
Atakujący może wykonać dowolny kod na systemie operacyjnym hosta (RCE), co potencjalnie prowadzi do pełnego przejęcia kontroli nad maszyną ofiary, w tym do kradzieży danych, instalacji złośliwego oprogramowania lub lateral movement w sieci.
Należy zaktualizować AnythingLLM Desktop do wersji zawierającej poprawkę dostępną w commicie 9e2d144dc8be6fab29f560f5bcdaa9ef7dbb4214. Szczegóły dostępne w repozytorium GitHub producenta oraz w security advisory GHSA-rrmw-2j6x-4mf2.
AnythingLLM Desktop w wersji 1.11.1 i wcześniejszych (produkt Mintplex Labs)
Podatność dotyczy wyłącznie wersji Desktop aplikacji AnythingLLM opartej na Electron. Kluczowym czynnikiem eskalacji jest insecure konfiguracja Electrona — sam XSS w wersji webowej mógłby nie prowadzić do RCE. Wektor ataku obejmuje UI:R (wymagana interakcja użytkownika), jednak opis wskazuje, że wystarczy normalne korzystanie z czatu, co znacząco obniża próg ataku.
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:HMintplexlabs Anythingllm
APPMintplexlabs≤ 1.11.1
Powiązane podatności
Nieprawidłowa kontrola dostępu w AnythingLLM — nieautoryzowana manipulacja bazą danych
Brak autoryzacji w AnythingLLM — destrukcyjny dostęp do VectorDB
RCE poprzez command injection w Mintplex Labs AnythingLLM
Mass assignment w anything-llm umożliwia nieautoryzowane tworzenie kont admin
Path Traversal w AnythingLLM — odczyt i usunięcie plików przez logo filename