Descoberta e escopo
Pesquisas publicadas identificaram uma vulnerabilidade de deserialização no componente JsonPlusSerializer do projeto LangGraph (langgraph-checkpoint) que permite a execução arbitrária de código Python ao carregar checkpoints manipulados. O problema foi rastreado como CVE-2025-64439 e afeta versões de langgraph-checkpoint anteriores à 3.0.
Abordagem técnica / vetor de exploração
O erro ocorre quando o serializador encontra valores Unicode-surrogate ilegais durante uma tentativa de serialização com msgpack e, automaticamente, faz fallback para um modo JSON inseguro. Nesse modo de fallback, o deserializador aceita um formato de "constructor" que reconstrói objetos personalizados durante o carregamento — mecanismo que, sem restrições, permite apontar para funções do sistema (por exemplo, os.system) e executar comandos embutidos no payload.
O exploit de prova de conceito descrito utiliza um objeto JSON com campos específicos (por exemplo, "lc": 2, "type": "constructor", e um "id" apontando para funções perigosas) que, quando carregado do checkpoint, dispara execução de código no contexto do processo que realiza a desserialização.
Severidade e métricas
A publicação apresenta valores de severidade altos: a matéria cita um escore CVSS próximo de 8.5 e a mesma tabela refere, em contexto de CVSS v4, um valor de 7.5 — diferença que reflete variações na metodologia de pontuação. Em qualquer dos casos, trata‑se de risco elevado, pois a exploração permite execução remota de código (RCE) quando as condições de uso do componente forem atingidas.
Impacto e quem é afetado
- Sistemas que persistem dados não confiáveis em checkpoints e que usam o JsonPlusSerializer (padrão) estão em risco.
- Implementações que processam apenas dados confiáveis ou que já usam o LangGraph-API (versões 0.5 ou posteriores, quando aplicável) têm risco prático reduzido, conforme o próprio advisory.
- A superfície de ataque inclui aplicações de IA/ML que salvam estado de execução em checkpoints e serviços expostos que aceitam checkpoints de terceiros.
Mitigações e recomendações
LangChain lançou langgraph-checkpoint versão 3.0 com correções que implementam uma allow-list para deserialização por construtor, restringindo caminhos permitidos a combinações explícitas de módulo/classe. Além disso, o suporte à gravação de payloads em JSON foi depreciado para eliminar o modo de fallback inseguro.
Recomendações práticas:
- Atualize imediatamente para langgraph-checkpoint >= 3.0 em todas as instâncias que gravam ou carregam checkpoints.
- Audite fluxos que aceitam checkpoints de fontes externas; trate checkpoints como dados não confiáveis até prova em contrário.
- Como mitigação adicional, execute processos de desserialização com privilégios mínimos e em ambientes isolados (container/sandbox), reduzindo impacto de uma exploração bem-sucedida.
Limitações das informações
O advisory esclarece quais condições tornam uma aplicação vulnerável (uso do JsonPlusSerializer e persistência de dados não confiáveis). Não há indicação pública de exploração ativa (exploit in the wild) nas fontes consultadas até o momento; as publicações indicam apenas o PoC técnico e disponibilizam a correção.
Próximos passos para equipes de segurança
Priorize inventário de dependências e verifique a presença do pacote langgraph-checkpoint em pipelines de CI/CD, serviços de inferência e armazenamentos de checkpoints. Planeje a atualização coordenada para 3.0, valide a compatibilidade em ambientes de teste e aplique controles de execução (privilégios, isolamento) até a mitigação completa.