CVE-2021-47952: Execução remota de código no jsonpickle 2.0.0 (Python) via py/repr
Uma falha de injeção de código (CWE-94) no jsonpickle 2.0.0 permite a execução de código Python arbitrário ao desserializar JSON não confiável com objetos py/repr. A CNA VulnCheck atribui CVSS 3.1 9.8 (crítico). O registro não informa versão corrigida nem inclusão no catálogo KEV.
Visão geral
A CVE-2021-47952 afeta o jsonpickle 2.0.0, uma biblioteca Python usada para serializar e desserializar objetos Python em JSON. A entrada na NVD descreve uma falha de execução remota de código na qual JSON elaborado com objetos py/repr faz com que comandos Python arbitrários sejam executados durante a desserialização, porque a função eval é invocada. A fraqueza é classificada como CWE-94 (Injeção de Código), e a CNA responsável é a VulnCheck.
Impacto
- Conforme descrito no registro, a exploração bem-sucedida permitiria a execução de código Python arbitrário no contexto da aplicação que desserializa a entrada.
- A pontuação base CVSS 3.1 atribuída pela VulnCheck é 9,8 (crítico), com vetor que indica alcance pela rede, baixa complexidade de ataque, nenhum privilégio exigido e nenhuma interação do usuário.
- A VulnCheck também informa uma pontuação CVSS 4.0 de 9,3.
- O vetor CVSS 3.1 classifica os impactos de confidencialidade, integridade e disponibilidade como altos.
Produtos e versões afetadas
- O registro lista o jsonpickle na versão 2.0.0 como afetado.
- Se outras versões também são afetadas, é desconhecido a partir do registro disponível.
- Fontes upstream: jsonpickle no GitHub e a documentação do projeto.
Status de exploração
- Esta CVE não consta no catálogo Known Exploited Vulnerabilities da CISA neste registro.
- Nenhuma exploração confirmada na natureza aparece nas fontes consultadas.
- O valor de exploração no SSVC é poc, que indica que existe uma prova de conceito conhecida. O registro também referencia uma entrada na Exploit-DB, cujo conteúdo não é reproduzido aqui.
- O EPSS atribui probabilidade de 0,00696 e percentil de 0,51766, datados de 2026-10-13.
Correção e mitigação
- O registro não lista versões corrigidas. Isso é desconhecido, não evidência de que não existe correção. Consulte o aviso da VulnCheck e o projeto upstream para orientações atuais.
- Não desserialize JSON de fontes não confiáveis com o jsonpickle. Trate como não confiáveis os dados vindos de usuários, APIs externas e filas de mensagens.
- Sempre que possível, substitua a desserialização que reconstrói objetos por formatos de dados simples que não instanciem objetos nem avaliem código.
- Faça o inventário das aplicações e das dependências transitivas que usam o jsonpickle, priorizando serviços expostos à internet.
- Aplique as correções upstream ou do fornecedor após verificação e teste novamente os fluxos afetados após a atualização.
Orientações de detecção
- Revise os logs das aplicações em busca de erros de desserialização ou objetos inesperados ao processar cargas JSON.
- Monitore processos filhos inesperados ou conexões de saída iniciadas por serviços Python que recebem JSON.
- Em nível geral, revise os corpos de requisições de entrada que contenham marcadores de tipo do jsonpickle, usando logs de firewall de aplicação web ou de gateway de API.
Limitações das informações disponíveis
- Nenhuma versão corrigida é listada no registro.
- O registro não inclui pontuações CVSS da NVD; apenas as pontuações da VulnCheck estão presentes.
- A abrangência completa das versões afetadas além da 2.0.0 é desconhecida.
- Uma página de CVE da Red Hat e uma entrada no Bugzilla da Red Hat são referenciadas, mas seu conteúdo não faz parte do registro.
- A prevalência no mundo real e as tentativas de exploração são desconhecidas.
Perguntas frequentes
A CVE-2021-47952 está sendo explorada ativamente?
O registro não a lista no catálogo KEV da CISA, e nenhuma exploração confirmada na natureza aparece nas fontes consultadas. O valor de exploração no SSVC é poc, o que indica que existe uma prova de conceito conhecida.
Existe uma versão corrigida do jsonpickle para este problema?
O registro não lista versões corrigidas. Isso é desconhecido, não confirmado como inexistente; consulte o aviso da VulnCheck e o projeto upstream para orientações atuais.
O que as equipes devem fazer agora?
Evitar desserializar JSON não confiável com o jsonpickle, fazer o inventário dos locais de uso, incluindo dependências transitivas, priorizar serviços expostos à internet e aplicar correções upstream verificadas quando disponíveis.
Esta análise foi redigida com auxílio de IA a partir de dados verificados das fontes e checada automaticamente contra eles.