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.
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.
- 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-coreepip show langgraph-checkpoint-sqlitemostram a versão instalada. Confira também o lockfile, o arquivo que fixa a versão exata de cada pacote. - Compare com as versões corrigidas. Qualquer versão abaixo das indicadas nos três avisos acima precisa de atualização.
- Procure as funções citadas. Uma busca no código por
load_prompt,loads(,astream_eventseSqliteSavermostra se a aplicação usa os trechos afetados. - 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_envpassa a ser desligado por padrão eallowed_objectsrestringe 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
- LangChain, LangGraph Flaws Expose Files, Secrets, Databases in Widely Used AI Frameworks, The Hacker News, 27/03/2026
- GHSA-qh6h-p6c9-ff54 (CVE-2026-34070), LangChain no GitHub Security Advisories, 26/03/2026
- GHSA-c67j-w6g6-q2cm (CVE-2025-68664), LangChain no GitHub Security Advisories, 23/12/2025
- GHSA-9rwj-6rc7-p77c (CVE-2025-67644), LangGraph no GitHub Security Advisories, 09/12/2025