
Três vulnerabilidades corrigidas em implementações SQLite e Redis do checkpointer permitem encadear injeção SQL, deserialização insegura de msgpack e injeção em consultas RediSearch para obter RCE em servidores LangGraph auto-hospedados com entrada de filtro controlada pelo usuário.
| Componente | LangGraph e pacotes de checkpointer associados: langgraph-checkpoint-sqlite (antes de 3.0.1), langgraph (antes de 1.0.10) e @langchain/langgraph-checkpoint-redis (antes de 1.0.1), em implantações auto-hospedadas com SQLite ou Redis |
| Vetor | Exposição do endpoint get_state_history() com filtro de metadados controlado pelo atacante; injeção SQL em chaves de filtro no checkpointer SQLite ou injeção em consulta RediSearch no checkpointer Redis, seguida de inserção de checkpoint serializado malicioso e desserialização msgpack insegura ao carregar o estado |
| Impacto | Encadeamento de CVE-2025-67644 com CVE-2026-28277 pode levar a execução remota de código no servidor; após escalação, acesso a segredos em tempo de execução e alcance a outros sistemas acessíveis pelo runtime; CVE-2026-27022 permite contornar controles de acesso em cenários Redis |
| Prioridade | Atualizar imediatamente os pacotes corrigidos, exigir autenticação em servidores auto-hospedados, restringir acesso à camada de persistência de checkpoints, aplicar segmentação de rede e privilégio mínimo aos agentes de IA |
| Versões | Correções disponíveis em langgraph-checkpoint-sqlite 3.0.1+, langgraph 1.0.10+ e @langchain/langgraph-checkpoint-redis 1.0.1+; LangSmith Deployment não é afetado |
| Mitigação | Eliminar segredos estáticos de longa duração, tratar identidades de agentes como contas privilegiadas e validar que filtros de metadados não alcançam consultas sem sanitização adequada |
Pesquisadores de segurança divulgaram três falhas já corrigidas no ecossistema LangGraph, framework de código aberto criado pela LangChain para construir aplicações agênticas de inteligência artificial complexas, com estado persistente e múltiplos agentes. Entre elas, uma cadeia crítica pode resultar em execução remota de código em implantações auto-hospedadas que utilizam o checkpointer com SQLite ou Redis e aceitam entrada de filtro controlada pelo usuário. A plataforma gerenciada LangSmith Deployment não é afetada por esse cenário.
O pesquisador Yarden Porat é creditado pela descoberta e reporte das três vulnerabilidades. Segundo a análise publicada, CVE-2025-67644 e CVE-2026-28277 podem ser encadeadas para alcançar execução remota de código. A cadeia depende da exposição do endpoint get_state_history(), que recupera checkpoints históricos com base em metadados. A injeção SQL presente na implementação SQLite permite manipular consultas por meio de chaves de filtro de metadados, enquanto a desserialização insegura de msgpack no núcleo do LangGraph permite reconstrução de objetos quando um checkpoint adulterado é carregado. Um terceiro identificador, CVE-2026-27022, trata de injeção em consultas RediSearch no pacote Redis associado, com potencial de contornar controles de acesso.
Os mantenedores do LangGraph classificam CVE-2026-28277 como problema de pós-exploração: a exploração bem-sucedida exige capacidade de gravar dados de checkpoint controlados pelo atacante e convertê-los em execução de código no runtime da aplicação. O modelo de ameaça pressupõe adulteração da camada de persistência de checkpoints usada pela implantação, cenário que configurações hospedadas típicas buscam impedir. Mesmo assim, a combinação com injeção SQL eleva o risco em ambientes auto-hospedados mal configurados, onde frameworks de agentes frequentemente operam com privilégios elevados e confiança ampliada sobre dados e integrações.
A cadeia de ataque documentada inicia quando a aplicação expõe get_state_history() e processa filtros de metadados sem validação suficiente contra injeção estrutural em SQL. O atacante envia um parâmetro de filtro malicioso que explora CVE-2025-67644 para fazer a consulta retornar uma linha de checkpoint fabricada, na qual a coluna de checkpoint contém dados serializados sob controle do adversário. Esse estágio transforma uma falha de manipulação de consulta em capacidade de influenciar o conteúdo que o servidor considera histórico de estado válido.
Quando o servidor processa o resultado da consulta, desserializa o BLOB do checkpoint malicioso. A falha CVE-2026-28277 reside na desserialização insegura de msgpack: um payload preparado com instruções para executar código arbitrário pode ser reconstruído como objetos executáveis no contexto do runtime. O encadeamento fecha o ciclo entre adulteração lógica do repositório de checkpoints e execução remota de código no processo que hospeda o agente.
Em paralelo, CVE-2026-27022 descreve injeção em consultas RediSearch no módulo @langchain/langgraph-checkpoint-redis, com pontuação CVSS 6.5, explorável para contornar controles de acesso quando a persistência usa Redis com esse componente. Embora o relatório enfatize a cadeia SQLite-msgpack para RCE, a falha Redis reforça que qualquer backend de checkpointer com entrada influenciável pelo cliente exige endurecimento equivalente. A escalada de acesso de escrita na loja de checkpoints para execução de código pode expor segredos presentes no runtime ou ampliar o alcance a outros sistemas alcançáveis pela identidade sob a qual o agente executa.
O impacto concentra-se em implantações auto-hospedadas do LangGraph que combinam exposição de API de histórico de estado, checkpointer SQLite ou Redis com filtros de metadados controlados externamente e versões vulneráveis dos pacotes listados. Ambientes que delegam persistência a serviços gerenciados com isolamento forte entre tenants e sem superfície de escrita arbitrária no repositório de checkpoints ficam fora do modelo de ameaça principal descrito para RCE encadeada.
A superfície inclui não apenas o processo do servidor LangGraph, mas também credenciais e integrações acessíveis ao runtime após comprometimento, dado o perfil frequentemente privilegiado de aplicações agênticas que orquestram ferramentas, APIs internas e fluxos de automação.
- Servidores auto-hospedados com
langgraph-checkpoint-sqliteanterior a 3.0.1 e endpointget_state_history()acessível - Implantações com
langgraphanterior a 1.0.10 que carregam checkpoints msgpack de origem não confiável - Ambientes Redis com
@langchain/langgraph-checkpoint-redisanterior a 1.0.1 sujeitos a injeção em consultas RediSearch - Contas e segredos de runtime, integrações downstream e sistemas alcançáveis pela identidade do agente após execução de código
Equipes que operam agentes LangGraph auto-hospedados devem correlacionar tráfego para endpoints de histórico de estado com anomalias em consultas ao backend de checkpoints. Padrões de filtro de metadados contendo sequências incomuns, delimitadores SQL ou construções que alteram a semântica da consulta merecem alerta, especialmente quando precedem carregamento de checkpoints fora do padrão de serialização esperado.
Em SQLite, auditorias de integridade do repositório de checkpoints podem revelar linhas inseridas ou modificadas sem transações legítimas correspondentes na aplicação. Em Redis, consultas RediSearch atípicas originadas do serviço LangGraph indicam tentativa de manipulação de índices ou filtros. Logs de desserialização, exceções em carregamento de estado e processos filhos inesperados no host após requisições a get_state_history() compõem sinais de exploração da cadeia documentada.
- Requisições anômalas a
get_state_history()com parâmetros de filtro contendo padrões de injeção estrutural - Consultas ao checkpointer SQLite ou RediSearch com sintaxe ou cardinalidade fora do baseline operacional
- Eventos de desserialização msgpack seguidos de execução de processo não mapeado no pipeline do agente
- Acesso pós-comprometimento a variáveis de ambiente, tokens de integração ou APIs internas a partir do runtime do LangGraph
A resposta imediata passa pela aplicação dos patches que endereçam cada CVE nos pacotes correspondentes, seguida de verificação de versões efetivas em ambientes de produção, staging e pipelines de build que empacotam dependências transitivas do LangGraph. Como a cadeia exige exposição de endpoint e influência sobre persistência, a mitigação estrutural inclui autenticação obrigatória e autorização fina em servidores auto-hospedados, além de restringir quais interfaces de histórico de estado permanecem publicadas.
A postura defensiva deve refletir que agentes de IA funcionam como identidades privilegiadas. Segmentação de rede limita o raio de alcance após um comprometimento no runtime, enquanto a rotação de segredos e a eliminação de credenciais estáticas de longa duração reduzem o valor de um acesso obtido via checkpoint adulterado. Revisões de configuração do checkpointer — permissões no banco SQLite, ACLs no Redis, isolamento de volumes e backups — impedem que um atacante com acesso parcial à camada de aplicação converta filtros maliciosos em escrita persistente maliciosa.
- Atualizar
langgraph-checkpoint-sqlitepara 3.0.1 ou superior,langgraphpara 1.0.10 ou superior e@langchain/langgraph-checkpoint-redispara 1.0.1 ou superior - Exigir autenticação e controle de acesso em servidores LangGraph auto-hospedados; revisar exposição de
get_state_history() - Aplicar privilégio mínimo à identidade do agente, segmentar rede e rotacionar segredos de runtime sem dependência de valores estáticos prolongados
- Monitorar integridade do repositório de checkpoints e validar que implantações gerenciadas permanecem em configurações que bloqueiam adulteração da camada de persistência
0 Comentários