W LibreChat w wersjach do 0.8.3 włącznie każdy uwierzytelniony użytkownik może wymusić na serwerze transmisję krytycznych sekretów (kluczy kryptograficznych, danych bazy danych) do kontrolowanego przez siebie serwera poprzez spreparowaną konfigurację MCP. Podatność umożliwia pełne przejęcie materiałów kryptograficznych i poświadczeń instalacji bez konieczności posiadania uprawnień administracyjnych.
▸ Pokaż oryginał (EN)
LibreChat is an enhanced ChatGPT clone that supports multiple AI providers. In versions up to and including 0.8.3, the Model Context Protocol (MCP) server integration resolves ${VAR} placeholders against the server's process.env during Zod schema validation of user-supplied MCP server URLs. Any authenticated user can create a malicious MCP server configuration with a URL pointing to an attacker-controlled domain containing environment variable references, causing the LibreChat server to connect to the attacker's server and transmit critical secrets such as CREDS_KEY, CREDS_IV, JWT_SECRET, and MONGO_URI in the request URL. This enables full compromise of the installation's cryptographic materials and database credentials without requiring administrative privileges. This is patched in version 0.8.4-rc1.
Integracja z serwerem Model Context Protocol (MCP) rozwiązuje placeholdery w formacie ${VAR} na wartości zmiennych środowiskowych procesu serwera (process.env) podczas walidacji schematu Zod dla dostarczonych przez użytkownika adresów URL serwerów MCP. Atakujący tworzy złośliwą konfigurację MCP wskazującą na kontrolowaną przez siebie domenę, umieszczając w adresie URL odwołania do zmiennych środowiskowych. Serwer LibreChat łączy się z serwerem atakującego, przesyłając w adresie URL wartości tajnych zmiennych, takich jak CREDS_KEY, CREDS_IV, JWT_SECRET oraz MONGO_URI.
Atakujący uzyskuje dostęp do krytycznych sekretów kryptograficznych i poświadczeń bazy danych, co umożliwia pełne przejęcie instalacji — odszyfrowywanie danych, fałszowanie tokenów JWT oraz bezpośredni dostęp do bazy MongoDB.
Należy zaktualizować LibreChat do wersji 0.8.4-rc1 lub nowszej, w której podatność została naprawiona. Należy również po aktualizacji przeprowadzić rotację wszystkich potencjalnie ujawnionych sekretów: CREDS_KEY, CREDS_IV, JWT_SECRET oraz poświadczeń MONGO_URI.
LibreChat w wersjach do 0.8.3 włącznie
Podatność wymaga jedynie uwierzytelnienia jako zwykły użytkownik — brak wymogu uprawnień administracyjnych (PR:L w wektorze CVSS). Szczegóły opublikowane w ramach GitHub Security Advisory GHSA-4pcc-j6m6-wcwx.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:NLibrechat
APPLibrechat< 0.8.4
Powiązane podatności
LibreChat: RCE jako root przez MCP stdio transport bez walidacji poleceń
SSRF w LibreChat — brak ograniczeń funkcji Actions w domyślnej konfiguracji
LibreChat: path traversal umożliwiający usunięcie dowolnych plików
LibreChat — nieprawidłowa kontrola dostępu przy aktualizacji wiadomości
Path Traversal w LibreChat — brak walidacji ścieżek obrazów