IBM Langflow OSS w wersjach 1.0.0–1.10.1 zawiera krytyczną podatność umożliwiającą nieuwierzytelnionemu atakującemu zdalne wykonanie kodu (RCE) poprzez wstrzykiwanie zmiennych środowiskowych. Brak uwierzytelnienia oraz pełna triada CIA sprawiają, że podatność stanowi bezpośrednie zagrożenie dla systemów produkcyjnych.
▸ Pokaż oryginał (EN)
IBM Langflow OSS 1.0.0 through 1.10.1 are vulnerable to unauthenticated remote code execution via environment variable injection in the MCP (Model Context Protocol) stdio launcher. The vulnerability exists in src/lfx/src/lfx/base/mcp/util.py where the DANGEROUS_ENV_VARS blocklist fails to include SHELLOPTS , BASHOPTS , and PS4 environment variables.
Podatność klasy command injection (CWE-78) tkwi w pliku src/lfx/src/lfx/base/mcp/util.py, gdzie mechanizm uruchamiania procesów MCP (Model Context Protocol) w trybie stdio korzysta z listy blokady DANGEROUS_ENV_VARS. Lista ta nie obejmuje zmiennych środowiskowych SHELLOPTS, BASHOPTS oraz PS4, które w powłoce bash pozwalają na zmianę zachowania interpretera i wstrzyknięcie dowolnych poleceń. Atakujący może przekazać odpowiednio spreparowane wartości tych zmiennych bez konieczności posiadania jakichkolwiek poświadczeń, co skutkuje wykonaniem arbitralnych poleceń w kontekście procesu serwera.
Atakujący uzyskuje możliwość wykonania dowolnego kodu na serwerze z uprawnieniami procesu aplikacji, co może prowadzić do pełnego przejęcia systemu, wycieku danych oraz naruszenia integralności i dostępności usługi.
Należy zastosować patche dostępne u producenta zgodnie z referencjami (https://www.ibm.com/support/pages/node/7279995). Do czasu aktualizacji zaleca się ograniczenie dostępu sieciowego do interfejsu MCP stdio launcher na poziomie firewall oraz wdrożenie kontroli zmiennych środowiskowych przekazywanych do procesów aplikacji.
IBM Langflow OSS w wersjach od 1.0.0 do 1.10.1 włącznie.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLangflow
APPLangflow1.0.0 – 1.10.2 (bez)
Powiązane podatności
IBM Langflow OSS: RCE przez nieuprawniony dostęp do tokenów SUPERUSER
Langflow: nieuwierzytelniony RCE przez endpoint budowania publicznych przepływów
Langflow RCE przez parametr exec_globals w endpoincie validate
Langflow: przejęcie konta i RCE przez błędną konfigurację CORS
Nieuwierzytelnione RCE w Langflow poprzez wstrzyknięcie kodu w endpoint /api/v1/validate/code