CWE-190
Estouro ou Wraparound de Inteiro
Sobre
O produto realiza um cálculo que pode produzir um estouro (overflow) ou wraparound de inteiro quando a lógica assume que o valor resultante será sempre maior que o valor original. Isso ocorre quando um valor inteiro é incrementado para um valor grande demais para ser armazenado na representação associada. Quando isso ocorre, o valor pode se tornar um número muito pequeno ou negativo.
Consequências comuns
- Disponibilidade → DoS: Falha, Encerramento ou Reinicialização, DoS: Consumo de Recursos (Memória), DoS: Instabilidade
- Integridade → Modificar Memória
- Confidencialidade, Disponibilidade, Controle de Acesso → Executar Código ou Comandos Não Autorizados, Contornar Mecanismo de Proteção
- Disponibilidade, Outro → Alterar Lógica de Execução, DoS: Falha, Encerramento ou Reinicialização, DoS: Consumo de Recursos (CPU)
- Controle de Acesso → Contornar Mecanismo de Proteção
Mitigações
- Requisitos: Garanta que todos os protocolos sejam estritamente definidos, de modo que todo comportamento fora dos limites possa ser identificado de forma simples, e exija conformidade estrita com o protocolo.
- Requisitos: Use uma linguagem que não permita a ocorrência dessa fraqueza ou que forneça construções que facilitem evitá-la. Se possível, escolha uma linguagem ou compilador que realize verificação automática de limites.
- Arquitetura e Design: Use uma biblioteca ou framework comprovado que não permita a ocorrência dessa fraqueza ou que forneça construções que facilitem evitá-la [REF-1482]. Use bibliotecas ou frameworks que facilitem lidar com números sem consequências inesperadas. Exemplos incluem pacotes de tratamento seguro de inteiros, como SafeInt (C++) ou IntegerLib (C ou C++). [REF-106]
- Implementação: Realize a validação de entrada em qualquer entrada numérica, garantindo que ela esteja dentro da faixa esperada. Imponha que a entrada atenda aos requisitos mínimo e máximo da faixa esperada. Use inteiros sem sinal (unsigned) sempre que possível. Isso facilita realizar a validação para estouros de inteiro. Quando inteiros com sinal (signed) forem necessários, garanta que a verificaç
- Implementação: Compreenda a representação subjacente da linguagem de programação e como ela interage com o cálculo numérico (CWE-681). Preste muita atenção a discrepâncias de tamanho de byte, precisão, distinções entre com sinal/sem sinal, truncamento, conversão e cast entre tipos, cálculos "not-a-number" e como a linguagem trata números grandes demais ou pequenos demais para sua representação sub
- Arquitetura e Design: Para quaisquer verificações de segurança realizadas no lado do cliente, garanta que essas verificações sejam duplicadas no lado do servidor, a fim de evitar o CWE-602. Os atacantes podem contornar as verificações do lado do cliente modificando os valores após as verificações terem sido realizadas, ou alterando o cliente para remover completamente as verificações do lado do cl
CVEs com esta fraqueza
Perguntas frequentes
O que é CWE-190?
O produto realiza um cálculo que pode produzir um estouro (overflow) ou wraparound de inteiro quando a lógica assume que o valor resultante será sempre maior que o valor original. Isso ocorre quando um valor inteiro é incrementado para um valor grande demais para ser armazenado na representação associada. Quando isso ocorre, o valor pode se tornar um número muito pequeno ou negativo.
Qual a probabilidade de CWE-190 ser explorada?
A MITRE classifica a probabilidade de exploração de CWE-190 como medium.
Quais plataformas CWE-190 afeta?
CWE-190 já foi observada em: C, Not Technology-Specific.
Quantas CVEs a Rainforest acompanha para CWE-190?
O Rainforest Labs acompanha atualmente 3 CVEs publicadas associadas a CWE-190. Elas estão listadas nesta página.
Potencialize sua estratégia de segurança com a Rainforest
Descubra vulnerabilidades cedo, priorize ameaças críticas e proteja o que realmente importa. A Rainforest simplifica suas operações de segurança, economizando tempo e reduzindo custos, para você focar no que move o seu negócio.
