CVE-2026-86099
WysokieCVSS 8.2Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 33 - wyżej niż 33% wszystkich znanych CVE
Streszczenie
Chainlit do wersji 2.12.0 nie waliduje parametru sessionId dostarczanego przez klienta socket.io, co pozwala nieuwierzytelnionym atakującym na manipulację ścieżkami plików poprzez wstrzykiwanie sekwencji ścieżek bezwzględnych lub względnych. Atakujący mogą tworzyć złośliwe wartości sessionId, które wychodzą poza katalog przesyłania i rekurencyjnie usuwać dowolne katalogi dostępne dla procesu usługi.
Ocena ryzyka
Ryzyko obejmuje nieautoryzowane usunięcie danych i potencjalną utratę integralności systemu. Atakujący bez uwierzytelnienia może usunąć krytyczne katalogi, co może prowadzić do przerwania działania usługi lub utraty danych.
Rekomendacja
Zaleca się natychmiastową aktualizację Chainlit do wersji nowszej niż 2.12.0, jeśli dostępna jest poprawka. Należy również ograniczyć dostęp do usługi oraz monitorować logi pod kątem nietypowych żądań sessionId.
Inne podatności w Chainlit
Zobacz wszystkie- CVE-2026-45018Krytyczne
Chainlit w wersjach od 2.4.0rc0 do 2.12.0, gdy funkcja features.mcp.enabled jest ustawiona na true, udostępnia endpoint POST /mcp bez wymaganego uwierzytelnienia. Dla transportu stdio endpoint akceptuje kontrolowany przez użytkownika ciąg fullCommand, a walidacja sprawdza tylko nazwę pliku wykonywalnego, co pozwala na wykonanie dowolnych poleceń przez argument -c w npx.
- CVE-2026-22219Wysokie
Podatność SSRF w Chainlit przed wersją 2.9.4 pozwala uwierzytelnionemu atakującemu na wykonanie żądań HTTP z serwera do wewnętrznych usług sieciowych lub punktów końcowych metadanych chmury poprzez kontrolowany przez użytkownika adres URL w elemencie podczas aktualizacji przepływu /project/element z backendem SQLAlchemy.
- CVE-2026-22218Średnie
Podatność w Chainlit przed wersją 2.9.4 umożliwia uwierzytelnionemu atakującemu odczyt dowolnego pliku na serwerze poprzez manipulację ścieżką w żądaniu aktualizacji elementu projektu. Atakujący może skopiować plik do swojej sesji, a następnie pobrać go za pomocą identyfikatora elementu.
- CVE-2026-82290Średnie
Chainlit do wersji 2.12.0 nie waliduje własności rekordów opinii w punktach końcowych PUT i DELETE. Uwierzytelnieni atakujący mogą usuwać lub modyfikować opinie innych użytkowników, podając dowolne identyfikatory opinii, co może zepsuć dane oceny ludzkiej używane do ewaluacji modeli.
- CVE-2026-45019Wysokie
Chainlit w wersjach od 2.4.0rc0 do 2.12.0, gdy funkcja features.mcp.enabled jest włączona, udostępnia endpoint POST /mcp bez wymaganego uwierzytelnienia. Atakujący może kontrolować adres URL i nagłówki żądań, co pozwala na wysyłanie żądań do wewnętrznych lub zewnętrznych usług, w tym do metadanych chmury, z dowolnymi nagłówkami Authorization i Cookie. Problem został naprawiony w wersji 2.12.0.
- CVE-2026-56104Wysokie
Chainlit przed wersją 2.10.1 zawiera podatność na przejęcie sesji, która pozwala nieuwierzytelnionym atakującym na przywrócenie i przejęcie uwierzytelnionych sesji użytkownika poprzez podanie prawidłowego identyfikatora sesji podczas przywracania sesji WebSocket bez weryfikacji własności. Atakujący mogą wykorzystać ścieżkę restore_existing_session, aby przejąć uprawnienia i role ofiary, umożliwiając nieautoryzowane wywoływanie narzędzi i dostęp do danych zastrzeżonych dla uwierzytelnionej ofiary.
Oryginalny opis (angielski, źródło NVD)
Chainlit through 2.12.0 fails to validate the client-supplied socket.io sessionId parameter, allowing unauthenticated attackers to traverse filesystem paths by injecting absolute or relative path sequences. Attackers can craft malicious sessionId values that escape the upload directory and recursively delete arbitrary directories accessible to the service process.

