CVE-2026-86062
ŚrednieCVSS 6.1Streszczenie
LightRAG przed wersją 1.5.5 renderuje treść odpowiedzi i myślenia za pomocą react-markdown, rehypeRaw i skipHtml=false bez sanityzacji HTML. Atakujący mogący dodać dokument może zapisać surowy HTML, który jest zwracany przez ścieżkę zapytania i renderowany jako aktywna treść, umożliwiając wykonanie dowolnego kodu JavaScript m.in. przez iframe srcdoc. Skrypt działa w origin LightRAG WebUI i może odczytać token API z localStorage oraz wykonywać akcje API w imieniu ofiary.
Ocena ryzyka
Atakujący może wykonać dowolny kod JavaScript w przeglądarce ofiary, ukraść token API i wykonać nieautoryzowane operacje. Prowadzi to do przejęcia sesji i potencjalnego dostępu do danych.
Rekomendacja
Zaktualizuj LightRAG do wersji 1.5.5 lub nowszej. Do czasu aktualizacji unikaj dodawania niezaufanych dokumentów i rozważ wyłączenie renderowania surowego HTML.
Inne podatności w LightRAG
Zobacz wszystkie- CVE-2026-85740Wysokie
LightRAG przed wersją 1.5.5 zawiera podatność w parserze Markdown, która umożliwia pobieranie zasobów z wewnętrznych adresów IPv4 przy użyciu translatorów NAT64, co może prowadzić do nieautoryzowanego dostępu do wewnętrznych zasobów.
- CVE-2026-85725Średnie
LightRAG przed wersją 1.5.5 w funkcji verify_password w lightrag/api/passwords.py porównuje hasła AUTH_ACCOUNTS za pomocą operatora ==, co może ujawniać różnice czasowe zależne od długości hasła i pasujących prefiksów. Atakujący sieciowy o niskich opóźnieniach może wielokrotnie odpytywać /login i wykorzystać oracle czasowy do odzyskania hasła znak po znaku. Wdrożenia używające haseł z prefiksem bcrypt nie są dotknięte tą ścieżką porównania.
- CVE-2026-85709Średnie
LightRAG przed wersją 1.5.5 zwraca surowe teksty wyjątków Pythona z obsługi błędów w document_routes.py, graph_routes.py, query_routes.py, ollama_api.py i lightrag_server.py. Ścieżki detail=str(e), detail=str(exc) i podobne ujawniają klientowi sieciowemu ścieżki systemu plików, host, port, użytkownika i nazwy bazy danych, diagnostykę dostawcy modelu językowego, szczegóły konfiguracji oraz wnętrza bibliotek Pythona. Domyślna konfiguracja bez uwierzytelniania czyni te odpowiedzi dostępnymi bez poświadczeń.
- CVE-2026-85734Krytyczne
LightRAG to narzędzie do szybkiego generowania wspomaganego wyszukiwaniem. Przed wersją 1.5.5 endpoint POST /login w lightrag/api/lightrag_server.py nie nakłada limitu szybkości, blokady konta, opóźnienia ani licznika nieudanych prób uwierzytelnienia. Atakujący w sieci może zgadywać hasła z pełną szybkością żądań, aż znajdzie prawidłowe hasło konta.
- CVE-2026-61808Krytyczne
LightRAG do wersji 1.5.4 włącznie ma serwer API, który wiąże się ze wszystkimi interfejsami sieciowymi z wyłączonym uwierzytelnianiem domyślnie, co pozwala nieuwierzytelnionemu atakującemu sieciowemu na odczyt indeksowanych dokumentów, przesyłanie lub usuwanie dokumentów, modyfikację grafu wiedzy, anulowanie potoków, czyszczenie pamięci podręcznej i zużywanie zasobów LLM.
- CVE-2026-61740Krytyczne
W LightRAG przed wersją 1.5.4, gdy zmienna LIGHTRAG_API_KEY jest ustawiona, ale AUTH_ACCOUNTS nie, ochrona za pomocą X-API-Key może zostać ominięta. System używa zakodowanego na stałe tokena DEFAULT_TOKEN_SECRET, a endpointy /auth-status i /login mogą generować gościnne tokeny JWT, które są akceptowane przed sprawdzeniem klucza API. Zdalny, nieuwierzytelniony atakujący może wywoływać chronione endpointy, w tym do odczytu, przesyłania i usuwania dokumentów, mutacji grafu oraz zapytań.
- CVE-2026-61736Krytyczne
LightRAG w wersji przed 1.5.4 domyślnie konfiguruje CORS z wartością CORS_ORIGINS=* oraz allow_credentials=True, co powoduje, że Starlette CORSMiddleware zezwala na uwierzytelnione żądania z dowolnego źródła. Umożliwia to atakującemu na złośliwej stronie WWW wykonywanie żądań API w imieniu uwierzytelnionego użytkownika.
- CVE-2026-39413Średnie
LightRAG przed wersją 1.4.14 jest podatny na atak polegający na pomyleniu algorytmu JWT, gdzie atakujący może sfałszować tokeny, ustawiając 'alg': 'none' w nagłówku JWT. Funkcja jwt.decode() nie odrzuca jawnie algorytmu 'none', więc sfałszowany token bez podpisu jest akceptowany jako ważny, co prowadzi do nieautoryzowanego dostępu. Podatność została naprawiona w wersji 1.4.14.
Oryginalny opis (angielski, źródło NVD)
LightRAG provides simple and fast retrieval-augmented generation. Prior to 1.5.5, lightrag_webui/src/components/retrieval/ChatMessage.tsx renders answer and thinking content with react-markdown, rehypeRaw, and skipHtml=false without an HTML sanitizer. An attacker who can add a document can store raw HTML that is returned through the query path and rendered as active content by MessageMarkdown. A user who later retrieves the content can execute attacker-controlled JavaScript through elements such as an iframe srcdoc; the additional Mermaid securityLevel: loose rendering path also injects generated SVG through innerHTML. The script runs in the LightRAG WebUI origin and can read the API token in localStorage and perform API actions as the victim. This issue is fixed in version 1.5.5.

