CRITICALCVE-2021-3918CVSS 9.8

json-schema é vulnerável a Prototype Pollution

Plataforma

nodejs

Componente

json-schema

Corrigido em

0.3.1

0.4.0

AI Confidence: highNVDEPSS 1.3%Revisado: mar. de 2026

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

Prova de ConceitoDesconhecido
CISA KEVNO
Exposição na InternetAlta

EPSS

1.26% (percentil 79%)

Vetor CVSS

INTELIGÊNCIA DE AMEAÇAS· CVSS 3.1CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H9.8CRITICALAttack VectorNetworkComo o atacante alcança o alvoAttack ComplexityLowCondições necessárias para explorarPrivileges RequiredNoneNível de autenticação necessárioUser InteractionNoneSe a vítima precisa tomar uma açãoScopeUnchangedImpacto além do componente afetadoConfidentialityHighRisco de exposição de dados sensíveisIntegrityHighRisco de modificação não autorizada de dadosAvailabilityHighRisco de interrupção de serviçonextguardhq.com · Pontuação Base CVSS v3.1
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

Componentejson-schema
Fornecedorosv
Faixa afetadaCorrigido em
unspecified – 0.3.00.3.1
0.4.0

Informações do pacote

Última atualização
0.4.0há 55 meses

Classificação de Fraqueza (CWE)

Linha do tempo

  1. Reservado
  2. Publicada
  3. Modificada
  4. EPSS atualizado
Corrigido -10 dias após a divulgação

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.