Komponent RequestsToolkit w pakiecie langchain-community (wersja 0.0.27) nie nakłada żadnych ograniczeń na żądania HTTP do lokalnych adresów sieciowych, co prowadzi do podatności SSRF. Atakujący może wykorzystać tę lukę do uzyskania dostępu do wewnętrznych usług, metadanych instancji chmurowych oraz przeprowadzenia skanowania portów — bez żadnego uwierzytelnienia.
▸ Pokaż oryginał (EN)
A Server-Side Request Forgery (SSRF) vulnerability exists in the RequestsToolkit component of the langchain-community package (specifically, langchain_community.agent_toolkits.openapi.toolkit.RequestsToolkit) in langchain-ai/langchain version 0.0.27. This vulnerability occurs because the toolkit does not enforce restrictions on requests to remote internet addresses, allowing it to also access local addresses. As a result, an attacker could exploit this flaw to perform port scans, access local services, retrieve instance metadata from cloud environments (e.g., Azure, AWS), and interact with servers on the local network. This issue has been fixed in version 0.0.28.
Podatność wynika z braku walidacji docelowych adresów URL w komponencie langchain_community.agent_toolkits.openapi.toolkit.RequestsToolkit. Toolkit wykonuje żądania HTTP zarówno do zdalnych, jak i lokalnych adresów sieciowych, nie odróżniając ruchu do internetu od ruchu skierowanego do infrastruktury wewnętrznej. Atakujący może spreparować złośliwe żądanie, które zostanie przesłane przez serwer do lokalnych usług lub punktów końcowych metadanych instancji (np. AWS EC2 Metadata Service, Azure Instance Metadata Service). Skutkuje to nieautoryzowanym dostępem do zasobów niedostępnych bezpośrednio z zewnątrz.
Atakujący może przeprowadzić skanowanie portów sieci wewnętrznej, uzyskać dostęp do lokalnych usług oraz pobrać wrażliwe metadane instancji chmurowych (m.in. klucze dostępowe, tokeny uwierzytelniające) z środowisk takich jak AWS czy Azure. W połączeniu z maksymalnym wynikiem CVSS 10.0 i zakresem wykraczającym poza atakowaną aplikację (Scope: Changed), skutki mogą obejmować pełne przejęcie kontroli nad środowiskiem chmurowym.
Należy zaktualizować pakiet langchain-community do wersji 0.0.28 lub nowszej, w której problem został naprawiony. Poprawka dostępna jest w repozytorium projektu (commit e188d4ecb085d4561a0be3c583d26aa9c2c3283f).
langchain-community w wersji 0.0.27 (pakiet langchain-ai/langchain), komponent langchain_community.agent_toolkits.openapi.toolkit.RequestsToolkit
Podatność została zgłoszona za pośrednictwem platformy Huntr (bounty ID: 8f771040-7f34-420a-b96b-5b93d4a99afc). Poprawka wprowadzona w wersji 0.0.28.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:HLangchain
APPLangchain< 0.0.28
Powiązane podatności
SQL injection przez prompt injection w LangChain GraphCypherQAChain
SQL injection przez prompt injection w LangChain GraphCypherQAChain
An issue in LanChain-ai Langchain v.0.0.245 allows a remote attacker to execute arbitrary code via the evaluat...
An issue in langchain v.0.0.171 allows a remote attacker to execute arbitrary code via a JSON file to load_pro...
An issue in LangChain v.0.0.231 allows a remote attacker to execute arbitrary code via the prompt parameter.