Biblioteka langchain_experimental w wersjach 0.1.17–0.3.0 zawiera krytyczną podatność umożliwiającą zdalne wykonanie dowolnego kodu (RCE). Atakujący bez żadnych uprawnień może przejąć kontrolę nad systemem poprzez spreparowane dane wejściowe przekazywane do komponentu LLMSymbolicMathChain.
▸ Pokaż oryginał (EN)
langchain_experimental (aka LangChain Experimental) 0.1.17 through 0.3.0 for LangChain allows attackers to execute arbitrary code through sympy.sympify (which uses eval) in LLMSymbolicMathChain. LLMSymbolicMathChain was introduced in fcccde406dd9e9b05fc9babcbeb9ff527b0ec0c6 (2023-10-05).
Komponent LLMSymbolicMathChain, wprowadzony w październiku 2023 roku, przekazuje dane wejściowe do funkcji sympy.sympify(), która wewnętrznie korzysta z wbudowanej funkcji eval() języka Python. Funkcja eval() wykonuje przekazany jej ciąg znaków jako kod Python bez odpowiedniej walidacji ani sandbox'owania. Atakujący może w ten sposób dostarczyć złośliwy payload, który zostanie bezpośrednio wykonany w kontekście aplikacji.
Atakujący może wykonać dowolny kod na serwerze (RCE), co w praktyce oznacza pełne przejęcie kontroli nad systemem, ujawnienie poufnych danych, ich modyfikację lub zniszczenie oraz możliwość dalszego lateral movement w sieci.
Należy zaktualizować pakiet langchain_experimental do wersji wyższej niż 0.3.0, zgodnie z informacjami w oficjalnym release notes LangChain dostępnym pod adresem wskazanym w referencjach producenta. Do czasu aktualizacji należy rozważyć wyłączenie lub ograniczenie dostępu do funkcjonalności LLMSymbolicMathChain.
langchain_experimental (LangChain Experimental) w wersjach od 0.1.17 do 0.3.0 włącznie, stosowany jako składnik ekosystemu LangChain.
Komponent LLMSymbolicMathChain został wprowadzony commitem fcccde406dd9e9b05fc9babcbeb9ff527b0ec0c6 w dniu 2023-10-05. W referencjach dostępny jest publiczny proof-of-concept (gist GitHub), co zwiększa ryzyko aktywnego wykorzystania podatności.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLangchain Experimental
APPLangchain0.1.17 – 0.3.0
Powiązane podatności
RCE w LangChain Experimental — obejście poprawki CVE-2023-44467
Versions of the package langchain-experimental from 0.0.15 and before 0.0.21 are vulnerable to Arbitrary Code ...
langchain_experimental (aka LangChain Experimental) before 0.0.61 for LangChain provides Python REPL access wi...
Podatność deserialization injection w funkcjach dumps/dumpd LangChain Core
SSRF w LangChain RequestsToolkit — dostęp do sieci wewnętrznej i metadanych chmury