json-schema é vulnerável a Prototype Pollution
Plataforma
nodejs
Componente
json-schema
Corrigido em
0.3.1
0.4.0
A vulnerabilidade CVE-2021-3918 é uma falha de Prototype Pollution identificada na biblioteca json-schema, afetando versões anteriores à 0.4.0. Essa falha permite que atacantes modifiquem atributos do protótipo de objetos JavaScript, potencialmente comprometendo a integridade e a segurança de aplicações Node.js. A correção para esta vulnerabilidade está disponível na versão 0.4.0 da biblioteca.
Impacto e Cenários de Ataque
A exploração bem-sucedida desta vulnerabilidade permite que um atacante injete propriedades arbitrárias no protótipo de objetos JavaScript. Isso pode levar a uma ampla gama de ataques, incluindo a manipulação de dados, a evasão de controles de segurança e a execução de código malicioso. Em cenários complexos, a poluição do protótipo pode afetar o comportamento de outras bibliotecas e frameworks que dependem do mesmo protótipo, ampliando o impacto. A vulnerabilidade é particularmente perigosa em aplicações que utilizam json-schema para validação de dados, pois um atacante pode manipular a validação e injetar dados maliciosos.
Contexto de Exploração
A vulnerabilidade CVE-2021-3918 foi divulgada publicamente em 19 de novembro de 2021. Não há evidências de exploração ativa em larga escala no momento, mas a gravidade da vulnerabilidade (CVSS 9.8) indica um alto potencial de exploração. A biblioteca json-schema é amplamente utilizada em aplicações Node.js, tornando-a um alvo atraente para atacantes. Não foi adicionada ao KEV (Know Exploited Vulnerabilities) até o momento.
Inteligência de Ameaças
Status do Exploit
EPSS
1.26% (percentil 79%)
Vetor CVSS
O que significam essas métricas?
- Attack Vector
- Rede — explorável remotamente pela internet. Sem acesso físico ou local necessário.
- Attack Complexity
- Baixa — sem condições especiais. O atacante pode explorar de forma confiável.
- Privileges Required
- Nenhum — sem autenticação necessária para explorar.
- User Interaction
- Nenhuma — ataque automático e silencioso. A vítima não faz nada.
- Scope
- Inalterado — impacto limitado ao componente vulnerável.
- Confidentiality
- Alto — perda total de confidencialidade. O atacante pode ler todos os dados.
- Integrity
- Alto — o atacante pode escrever, modificar ou excluir qualquer dado.
- Availability
- Alto — falha completa ou esgotamento de recursos. Negação de serviço total.
Software Afetado
Informações do pacote
- Última atualização
- 0.4.0há 55 meses
Classificação de Fraqueza (CWE)
Linha do tempo
- Reservado
- Publicada
- Modificada
- EPSS atualizado
Mitigação e Soluções Alternativas
A mitigação primária para CVE-2021-3918 é atualizar a biblioteca json-schema para a versão 0.4.0 ou superior. Em ambientes onde a atualização imediata não é possível, considere implementar medidas de proteção adicionais, como a sanitização rigorosa de dados de entrada e a validação de todos os objetos antes de usá-los. Implementar regras de firewall de aplicação web (WAF) para detectar e bloquear padrões de ataque de poluição de protótipo também pode ajudar a reduzir o risco. Monitore logs de aplicação em busca de tentativas de modificação de propriedades de protótipo inesperadas.
Como corrigir
Atualize a biblioteca json-schema para uma versão posterior a 0.3.0. Isso resolverá a vulnerabilidade de Prototype Pollution. Você pode atualizar a dependência utilizando npm ou yarn.
Boletim de Segurança CVE
Análise de vulnerabilidades e alertas críticos diretamente no seu e-mail.
Perguntas frequentestraduzindo…
What is CVE-2021-3918 in json-schema?
Prototype Pollution is an attack that allows an attacker to modify properties on the Object.prototype, impacting all object instances in JavaScript.
Am I affected by CVE-2021-3918 in json-schema?
If you are using kriszyp/json-schema in a version prior to 0.4.0, your application is vulnerable. Review your code to identify where the library is used and if you process JSON data from untrusted sources.
How do I fix CVE-2021-3918 in json-schema?
Implementing additional validations on JSON input can help reduce the risk, but it is not a complete solution. Monitoring application logs is also important.
Is CVE-2021-3918 being actively exploited?
JSON schemas that attempt to modify properties of the Object.prototype, such as proto, constructor, or custom properties.
Where can I find the official json-schema advisory for CVE-2021-3918?
You can find more information in the NIST vulnerability database: https://nvd.nist.gov/vuln/detail/CVE-2021-3918
Seu projeto está afetado?
Envie seu arquivo de dependências e descubra na hora se esta e outras CVEs te atingem.