CVE-2026-45018
KrytyczneCVSS 9.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 49 - wyżej niż 49% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Nieuwierzytelniony atakujący może wykonać dowolne polecenia w kontekście procesu Chainlit, co może prowadzić do przejęcia aplikacji i dostępu do danych.
Rekomendacja
Zaktualizuj Chainlit do wersji 2.12.0 lub nowszej. Jeśli nie używasz MCP, wyłącz tę funkcję w konfiguracji.
Inne podatności w Chainlit
Zobacz wszystkie- 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-86099Wysokie
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.
- 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 is a Python framework for building production-ready conversational AI applications. From 2.4.0rc0 until 2.12.0, Chainlit deployments with features.mcp.enabled set to true in .chainlit/config.toml expose the POST /mcp endpoint without requiring authentication. For stdio transport, the endpoint accepts a user-controlled fullCommand string. The validate_mcp_command() function in backend/chainlit/mcp.py checks only the executable name against config.features.mcp.stdio.allowed_executables and passes unchecked arguments to StdioServerParameters in backend/chainlit/server.py. Because npx supports the -c argument, an attacker can execute arbitrary shell commands with the privileges of the Chainlit process. If allowed_executables is unset, its None default is treated as allowing every executable. This issue is fixed in version 2.12.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

