Pular para o conteúdo
CyberArmorPlataforma para consultoria de segurança
vulnerabilidade langchainfalha langgraphlangchain-core atualizar versãosegurança aplicação com ia

Falhas no LangChain e no LangGraph: sua aplicação de IA está exposta?

Se o seu produto usa LangChain ou LangGraph em versão antiga, um atacante pode ler arquivos do servidor, extrair chaves de API ou consultar o banco de conversas. As correções já existem. Descubra quais pacotes e versões sua aplicação usa, atualize e pare de passar dados de usuário para funções que carregam configuração.

Por Equipe CyberArmor

O que aconteceu com o LangChain e o LangGraph?

LangChain e LangGraph são bibliotecas de código aberto usadas para construir aplicações com modelos de linguagem, como chatbots, assistentes internos e agentes que consultam documentos. Se a sua empresa contratou um sistema desses ou desenvolveu um, há boa chance de uma delas estar por baixo.

Em 27 de março de 2026, o The Hacker News noticiou três falhas nessas bibliotecas, relatadas pelo pesquisador Vladimir Tokarev, da empresa de segurança Cyera. Cada uma expõe um tipo de dado: arquivos do servidor, segredos guardados em variáveis de ambiente (como chaves de API) e o banco onde o LangGraph guarda o histórico das conversas. Para o negócio, isso significa vazamento de dados de clientes e uso das suas chaves de API por terceiros, com a conta indo para você.

Duas das três falhas já tinham aviso oficial antes da reportagem: o aviso da falha de serialização saiu em 23 de dezembro de 2025, e o aviso da falha no histórico do LangGraph saiu em 9 de dezembro de 2025. Para a sua equipe, a data que importa é a do aviso de cada falha.

Quais são as três falhas e as versões corrigidas?

Os dados abaixo vêm dos avisos oficiais publicados pelos mantenedores no GitHub Security Advisories.

Como o carregamento de prompts expõe arquivos?

A falha CVE-2026-34070 está nas funções antigas load_prompt() e load_prompt_from_config() do pacote langchain-core. Se a aplicação passa para essas funções uma configuração que o usuário consegue influenciar, o atacante lê arquivos fora da pasta prevista, limitados às extensões .txt, .json e .yaml. Segundo o aviso GHSA-qh6h-p6c9-ff54, a gravidade é alta (CVSS 7.5), as versões anteriores à 1.2.22 são afetadas e a correção está na 1.2.22. O aviso também informa que essas funções foram descontinuadas e saem na versão 2.0.0.

Como a serialização vaza segredos?

A falha CVE-2025-68664 é a mais grave. Segundo o The Hacker News, ela já tinha sido divulgada pela empresa Cyata em dezembro de 2025 com o apelido "LangGrinch". As funções dumps() e dumpd() não tratavam corretamente dicionários com a chave interna lc. Um dado enviado pelo usuário podia ser lido de volta como objeto do LangChain e, com a opção secrets_from_env ligada (que era o padrão), revelar variáveis de ambiente. O aviso GHSA-c67j-w6g6-q2cm, de 23 de dezembro de 2025, classifica a falha como crítica (CVSS 9.3). As versões afetadas são as anteriores à 0.3.81 e as de 1.0.0 até antes da 1.2.5, e a correção está na 0.3.81 e na 1.2.5.

O mesmo aviso lista quem está exposto: aplicações que usam astream_events(version="v1") ou Runnable.astream_log(), que chamam load() ou loads() com dado não confiável, ou que usam componentes como RunnableWithMessageHistory com dado vindo do usuário.

Como a injeção de SQL atinge o histórico do LangGraph?

A falha CVE-2025-67644 fica no pacote langgraph-checkpoint-sqlite, que salva o estado das conversas num banco SQLite. As chaves do filtro de metadados entravam na consulta SQL sem validação. Segundo o aviso GHSA-9rwj-6rc7-p77c, de 9 de dezembro de 2025, a gravidade é alta (CVSS 7.3) e a correção está na versão 3.0.1. O risco existe quando a aplicação roda num servidor próprio com SqliteSaver, mostra o histórico das conversas e aceita chaves de filtro vindas de fora.

Como saber se a sua aplicação está exposta?

A pergunta tem duas partes: qual versão você usa e se o seu código chama a parte vulnerável.

  1. Descubra as versões. Peça à equipe ou ao fornecedor a lista de dependências de cada aplicação de IA. No ambiente Python, pip show langchain-core e pip show langgraph-checkpoint-sqlite mostram a versão instalada. Confira também o lockfile, o arquivo que fixa a versão exata de cada pacote.
  2. Compare com as versões corrigidas. Qualquer versão abaixo das indicadas nos três avisos acima precisa de atualização.
  3. Procure as funções citadas. Uma busca no código por load_prompt, loads(, astream_events e SqliteSaver mostra se a aplicação usa os trechos afetados.
  4. Verifique o caminho do dado. O risco real aparece quando texto vindo do usuário, de um documento ou de uma integração chega a essas funções.

Se a aplicação foi feita por um fornecedor, peça por escrito a versão do langchain-core em produção e a data da última atualização.

O que corrigir primeiro?

Atualize os pacotes. Essa é a única ação que fecha as três falhas. Monitorar a rede ou separar o servidor em outra rede não corrige uma falha que está dentro da biblioteca.

Depois da atualização, revise três pontos:

  • Prompts e objetos serializados só de fonte confiável. Não carregue configuração de prompt nem objeto serializado que venha do usuário.
  • Padrões novos da serialização. O aviso da falha de serialização informa que, após a correção, secrets_from_env passa a ser desligado por padrão e allowed_objects restringe o que pode ser carregado. Não religue essas opções sem motivo.
  • Chaves de API com escopo mínimo. Se houver chance de a versão antiga ter ficado exposta, gere chaves novas no provedor do modelo e revogue as antigas.

Como evitar ser pego de surpresa na próxima falha?

Frameworks de IA mudam rápido e recebem correções com frequência. Três hábitos reduzem o tempo entre o aviso e a correção:

  • Inventário de dependências (SBOM). Com a lista de componentes de cada sistema, a equipe responde "estamos expostos?" no mesmo dia.
  • Alerta automático de vulnerabilidade no repositório. Ferramentas de verificação de dependências avisam quando sai um aviso para um pacote que você usa.
  • Atualização como rotina. Reserve uma janela fixa para atualizar bibliotecas, em vez de esperar a próxima reportagem.

Se a sua empresa escolhe bibliotecas com ajuda de assistentes de IA, vale ler também sobre IA escolhendo dependências. Para ferramentas de IA publicadas na internet, veja o caso da falha crítica no Langflow.

Por onde começar na sua empresa?

Comece pelo inventário: quais sistemas usam IA, quais bibliotecas carregam e em que versão. Com essa lista em mãos, a equipe sabe exatamente o que atualizar e em que ordem.

Os analistas da CyberArmor fazem esse levantamento no Raio-X do código, que mapeia dependências, falhas conhecidas e o caminho do dado do usuário até as funções sensíveis. Para aplicações já em produção, o Pentest de aplicação testa se a falha pode ser explorada de fato. Falar com um especialista.

Fontes