
Três vulnerabilidades afetam APIs de carregamento de prompts, desserialização e checkpoints SQLite em estruturas usadas para aplicações com LLMs, com risco de leitura de arquivos, exposição de variáveis de ambiente e manipulação de consultas.
| Componente | LangChain, LangChain-Core e LangGraph, incluindo langchain_core/prompts/loading.py e a implementação SQLite de checkpoint do LangGraph. |
| Vetor | Entrada controlada em APIs de carregamento de prompt, estrutura de dados interpretada como objeto LangChain serializado e chaves de filtro de metadados usadas na montagem de consultas SQLite. |
| Impacto | Leitura de arquivos arbitrários, exposição de chaves de API e segredos de ambiente, acesso a históricos de conversa e execução de consultas SQL arbitrárias contra o banco de checkpoint. |
| Prioridade | Inventariar aplicações que usam LangChain e LangGraph, atualizar dependências afetadas e revisar logs, segredos e bancos SQLite associados a fluxos agentic e aplicações com LLMs. |
| Artefatos | CVE-2026-34070, CVE-2025-68664 e CVE-2025-67644. |
Três vulnerabilidades em LangChain e LangGraph atingem camadas centrais de aplicações baseadas em modelos de linguagem: carregamento de templates de prompt, interpretação de objetos serializados e armazenamento de estado em SQLite. O risco não está no modelo de IA em si, mas na infraestrutura que conecta prompts, agentes, ferramentas, memória de conversa, variáveis de ambiente e bancos locais. Em ambientes corporativos, esses componentes frequentemente ficam próximos de chaves de API, credenciais de integração, configurações Docker, históricos de workflows sensíveis e dados usados por agentes para tomar decisões.
A primeira falha, CVE-2026-34070, recebeu pontuação CVSS 7.5 e envolve path traversal em LangChain, especificamente em langchain_core/prompts/loading.py. O problema permite que uma chamada à API de carregamento de prompts acesse arquivos arbitrários quando recebe um template especialmente construído, sem validação suficiente do caminho. A segunda, CVE-2025-68664, recebeu CVSS 9.3 e envolve desserialização de dados não confiáveis em LangChain. Nesse caso, uma estrutura de entrada pode fazer a aplicação tratar dados comuns do usuário como um objeto LangChain já serializado, criando condição para exposição de chaves de API e segredos presentes no ambiente. A terceira, CVE-2025-67644, recebeu CVSS 7.3 e afeta a implementação de checkpoint SQLite do LangGraph, permitindo manipulação de consultas SQL por meio de chaves de filtros de metadados.
O impacto deve ser tratado como exposição de dados sensíveis vinculados à execução de aplicações de IA. A superfície é relevante porque LangChain, LangChain-Core e LangGraph são dependências amplamente usadas em aplicações com LLMs e em workflows agentic. Os números citados no contexto indicam dezenas de milhões de downloads semanais para LangChain e LangChain-Core, além de milhões para LangGraph, o que amplia o risco indireto em bibliotecas, wrappers e integrações que incorporam esses componentes. A prioridade operacional é reduzir a janela de exposição, confirmar versões em uso, limitar entradas não confiáveis nas rotas afetadas e revisar segredos que possam ter sido lidos por processos vulneráveis.
Em CVE-2026-34070, o ponto crítico é a forma como templates de prompt são carregados a partir de caminhos fornecidos à API. Quando uma aplicação aceita referência de template influenciada por usuário, pipeline, configuração externa ou outro serviço, uma sequência de path traversal pode deslocar a leitura para fora do diretório esperado. O efeito técnico confirmado é acesso a arquivos arbitrários pelo processo que executa a aplicação. O alcance real depende das permissões desse processo, do layout do sistema de arquivos, do isolamento do contêiner e da presença de arquivos sensíveis no mesmo ambiente de execução.
Em CVE-2025-68664, o problema está na fronteira entre dado comum e objeto serializado. A entrada maliciosa não precisa ser tratada como comando; ela explora a expectativa do framework sobre a estrutura recebida. Se a aplicação interpreta a estrutura como objeto LangChain já serializado, valores internos podem ser resolvidos de forma indevida e segredos de ambiente ou chaves de API podem ser expostos. Esse cenário é especialmente sensível em aplicações de LLM porque credenciais de provedores de modelo, conectores de dados, bancos vetoriais e ferramentas externas costumam estar disponíveis como variáveis de ambiente para simplificar deploy e integração.
Em CVE-2025-67644, a superfície está no checkpoint SQLite do LangGraph. Checkpoints armazenam estado de execução, histórico e metadados necessários para retomar ou auditar fluxos agentic. A falha permite que chaves de filtros de metadados manipulem a montagem de consultas SQL, levando à execução de consultas arbitrárias contra o banco. O impacto não deve ser descrito como comprometimento amplo de infraestrutura sem evidência adicional; o dado concreto é manipulação de consultas no banco SQLite usado pelo mecanismo de checkpoint, com risco sobre históricos de conversa e dados persistidos nesse armazenamento.
A superfície exposta inclui aplicações que usam LangChain para carregar prompts a partir de arquivos, interpretar estruturas serializadas ou conectar fluxos de entrada a objetos internos do framework. Também inclui aplicações LangGraph que usam checkpoints SQLite com filtros de metadados influenciados por entradas externas. O risco aumenta quando o serviço processa conteúdo enviado por usuários, integra agentes a ferramentas internas, executa workflows com histórico persistente ou compartilha o mesmo ambiente com segredos usados por provedores de LLM e sistemas corporativos.
Ambientes de desenvolvimento e produção devem ser avaliados separadamente. Em desenvolvimento, é comum que tokens, arquivos de configuração, variáveis de ambiente e bancos locais estejam mais próximos do processo vulnerável. Em produção, o impacto depende do isolamento por contêiner, permissões do usuário do processo, escopo dos segredos disponíveis e desenho das rotas que expõem funcionalidades de prompt, agente ou checkpoint. Bibliotecas downstream que encapsulam LangChain ou LangGraph também precisam entrar no inventário, porque a aplicação final pode herdar o caminho vulnerável sem usar diretamente a API afetada no código principal.
- Aplicações com LLMs que usam LangChain, LangChain-Core ou LangGraph como dependência direta ou transitiva.
- Rotas que aceitam templates, referências de prompt, estruturas serializadas ou metadados vindos de usuário, API, fila, integração ou automação.
- Workflows agentic com memória, histórico de conversa, checkpoints SQLite ou integração com ferramentas internas.
- Ambientes em que variáveis de ambiente carregam chaves de API, segredos de banco, credenciais de integração ou tokens de provedores externos.
A investigação deve começar pelo inventário de dependências. Procure LangChain, LangChain-Core e LangGraph em arquivos de dependência, lockfiles, imagens de contêiner, ambientes virtuais, notebooks, pipelines e aplicações internas que ofereçam chatbots, agentes, automações de suporte, pesquisa documental ou orquestração com LLMs. Como a exposição pode ocorrer por dependência transitiva, a análise não deve se limitar aos repositórios que importam explicitamente esses pacotes; wrappers internos e bibliotecas de plataforma também precisam ser inspecionados.
Na telemetria de aplicação, sinais relevantes incluem erros de carregamento de prompt com caminhos inesperados, tentativas de referência a arquivos fora do diretório de templates, exceções de desserialização, estruturas de entrada com metadados incomuns e consultas SQLite com campos de filtro anômalos. Em endpoint e contêiner, vale revisar acesso do processo a arquivos de configuração, arquivos de ambiente, diretórios Docker e bancos SQLite de checkpoint em momentos próximos a requisições suspeitas. Em identidade e segredos, a defesa deve procurar uso atípico de chaves de API após interações com aplicações de LLM vulneráveis, especialmente quando o mesmo serviço tinha acesso a variáveis de ambiente sensíveis.
- Presença de
CVE-2026-34070,CVE-2025-68664ouCVE-2025-67644no escopo de pacotes usados por aplicações internas. - Requisições que acionam carregamento de prompt com caminhos fora do padrão esperado ou referências a arquivos de configuração.
- Erros ou eventos de desserialização envolvendo estruturas de entrada tratadas como objetos LangChain.
- Consultas SQLite de checkpoint com filtros de metadados incomuns, nomes de chave inesperados ou falhas de sintaxe recorrentes.
- Acesso do processo da aplicação a arquivos sensíveis em horários correlacionados com entradas externas ou sessões de usuário incomuns.
A mitigação deve priorizar atualização das dependências afetadas e redução imediata da exposição das rotas que aceitam entradas não confiáveis. Aplicações com carregamento dinâmico de prompts devem restringir templates a diretórios permitidos, normalizar caminhos e bloquear referências que escapem da raiz esperada. Entradas recebidas de usuário, automação externa ou integrações devem ser tratadas como dados comuns, não como objetos serializados confiáveis. Em LangGraph, filtros de metadados usados com checkpoints SQLite devem passar por validação estrita de nomes de chave e operadores permitidos, evitando que a estrutura de consulta seja influenciada diretamente pela entrada.
A contenção também exige revisão de segredos. Como uma das falhas pode expor chaves de API e variáveis de ambiente, equipes devem identificar quais credenciais estavam disponíveis ao processo vulnerável e rotacionar segredos com risco plausível de exposição. A rotação precisa incluir provedores de LLM, bancos de dados, serviços de armazenamento, repositórios e conectores internos quando esses valores estavam no ambiente da aplicação. Para bancos SQLite de checkpoint, revise conteúdo persistido e retenção de histórico, pois conversas e metadados podem conter dados sensíveis de workflows internos.
Depois da correção, valide por teste defensivo controlado que caminhos fora do diretório de templates não são aceitos, que estruturas não confiáveis não são interpretadas como objetos serializados e que filtros de metadados não alteram a estrutura SQL além do comportamento previsto. A longo prazo, aplicações com LLMs devem operar com privilégio mínimo: segredos separados por função, contêineres sem arquivos desnecessários, diretórios de prompt somente leitura quando possível, logs suficientes para auditoria e revisão de dependências transitivas no ciclo de atualização.
- Atualizar LangChain, LangChain-Core e LangGraph nas aplicações afetadas, incluindo dependências transitivas em wrappers internos.
- Restringir carregamento de templates a caminhos permitidos e rejeitar referências que escapem do diretório esperado.
- Validar estruturas de entrada antes de qualquer rotina de desserialização ou reconstrução de objetos internos.
- Sanitizar chaves de filtros de metadados usadas em checkpoints SQLite e limitar campos aceitos por lista explícita.
- Rotacionar chaves de API e segredos de ambiente disponíveis ao processo vulnerável quando houver risco plausível de leitura.
- Revisar históricos de conversa e bancos de checkpoint para reduzir retenção de dados sensíveis e melhorar auditoria futura.
0 Comentários