Uma falha de segurança crítica foi descoberta no LangChain, um dos frameworks de inteligência artificial mais utilizados no mundo, expondo milhões de aplicações ao risco de roubo de credenciais e injeção de código malicioso. A vulnerabilidade permite que atacantes explorem a lógica central de serialização do LangChain para extrair variáveis de ambiente e executar ações não autorizadas, colocando em risco chaves de API, credenciais e dados sensíveis em todo o ecossistema de IA.
O vetor de ataque está centrado nas funções de serialização do LangChain que falharam em lidar adequadamente com dados controlados por usuários. As funções dumps() e dumpd() não escapam dicionários contendo chaves 'lc', marcadores internos que o LangChain usa para identificar seus próprios objetos serializados. Quando atores maliciosos injetam dados com essas chaves especiais, o sistema os trata como conteúdo legítimo do LangChain durante a desserialização, em vez de entrada não confiável de usuário. A vulnerabilidade foi descoberta por um especialista em segurança da Cyata durante auditorias de limites de confiança de IA.
A falha habilita múltiplos caminhos de ataque devastadores, incluindo extração de segredos de variáveis de ambiente quando a desserialização é executada com 'secrets_from_env=True', instanciação de classes dentro de namespaces confiáveis como langchain_core e langchain_community, e potencial execução arbitrária de código através de templates Jinja2. Atacantes podem criar prompts para instanciar classes permitidas, desencadeando ataques SSRF com variáveis de ambiente incorporadas em cabeçalhos para exfiltração de dados. Como isso afeta fluxos comuns como streaming de eventos, logging e caching, virtualmente qualquer aplicação LangChain processando dados não confiáveis pode estar comprometida.
O LangChain respondeu rapidamente à divulgação, lançando patches que mudam fundamentalmente como o framework lida com segurança de serialização. As correções incluem novos parâmetros de lista de permissões nas funções load() e loads() para especificar quais classes podem ser serializadas e desserializadas, templates Jinja2 agora bloqueados por padrão, e a opção perigosa 'secrets_from_env' alterada para 'False' para prevenir carregamento automático de segredos de variáveis de ambiente. As versões vulneráveis incluem langchain-core >= 1.0.0, < 1.2.5 e < 0.3.81, com correções disponíveis nas versões 1.2.5 e 0.3.81. Originalmente reportada via Huntr em 4 de dezembro de 2024, o LangChain reconheceu a vulnerabilidade no dia seguinte e publicou o aviso em 24 de dezembro. Uma vulnerabilidade paralela também atingiu o LangChainJS, rastreada como CVE-2025-68665, demonstrando que este problema de injeção de serialização afeta todo o ecossistema LangChain. Especialistas em cibersegurança estão emitindo alertas urgentes para que desenvolvedores atualizem o langchain-core imediatamente e verifiquem se dependências como langchain-community também foram atualizadas.
Este post foi traduzido e resumido a partir de sua versão original com o uso de IA, com revisão humana.
Com informações de Cybersecurity News