CWE-190
Desbordamiento de enteros o envolvimiento (wraparound)
Acerca de
El producto realiza un cálculo que puede producir un desbordamiento de enteros o un envolvimiento (wraparound) cuando la lógica supone que el valor resultante siempre será mayor que el valor original. Esto ocurre cuando un valor entero se incrementa a un valor demasiado grande para almacenarse en la representación asociada. Cuando esto ocurre, el valor puede convertirse en un número muy pequeño o negativo.
Consecuencias comunes
- Disponibilidad → DoS: bloqueo, salida o reinicio, DoS: consumo de recursos (memoria), DoS: inestabilidad
- Integridad → Modificación de memoria
- Confidencialidad, Disponibilidad, Control de acceso → Ejecución de código o comandos no autorizados, Elusión del mecanismo de protección
- Disponibilidad, Otro → Alteración de la lógica de ejecución, DoS: bloqueo, salida o reinicio, DoS: consumo de recursos (CPU)
- Control de acceso → Elusión del mecanismo de protección
Mitigaciones
- Requisitos: Asegúrese de que todos los protocolos estén estrictamente definidos, de modo que todo comportamiento fuera de los límites pueda identificarse de forma sencilla, y exija una conformidad estricta con el protocolo.
- Requisitos: Utilice un lenguaje que no permita que esta debilidad ocurra o que proporcione construcciones que faciliten evitarla. Si es posible, elija un lenguaje o compilador que realice la verificación automática de límites.
- Arquitectura y diseño: Utilice una biblioteca o marco de trabajo verificado que no permita que esta debilidad ocurra o que proporcione construcciones que faciliten evitarla [REF-1482]. Utilice bibliotecas o marcos que faciliten el manejo de números sin consecuencias inesperadas. Los ejemplos incluyen paquetes de manejo seguro de enteros como SafeInt (C++) o IntegerLib (C o C++). [REF-106]
- Implementación: Realice la validación de entradas en cualquier entrada numérica asegurándose de que se encuentre dentro del rango esperado. Imponga que la entrada cumpla tanto con los requisitos mínimos como con los máximos del rango esperado. Use enteros sin signo cuando sea posible. Esto facilita la validación de desbordamientos de enteros. Cuando se requieran enteros con signo, asegúrese de que
- Implementación: Comprenda la representación subyacente del lenguaje de programación y cómo interactúa con el cálculo numérico (CWE-681). Preste mucha atención a las discrepancias de tamaño de bytes, la precisión, las distinciones entre con signo y sin signo, el truncamiento, la conversión y el casting entre tipos, los cálculos "not-a-number" y cómo el lenguaje maneja los números que son demasiado
- Arquitectura y diseño: Para cualquier verificación de seguridad que se realice en el lado del cliente, asegúrese de que estas verificaciones se dupliquen en el lado del servidor, a fin de evitar CWE-602. Los atacantes pueden eludir las verificaciones del lado del cliente modificando los valores después de que se hayan realizado las verificaciones, o cambiando el cliente para eliminar por completo
CVEs con esta debilidad
Preguntas frecuentes
¿Qué es CWE-190?
El producto realiza un cálculo que puede producir un desbordamiento de enteros o un envolvimiento (wraparound) cuando la lógica supone que el valor resultante siempre será mayor que el valor original. Esto ocurre cuando un valor entero se incrementa a un valor demasiado grande para almacenarse en la representación asociada. Cuando esto ocurre, el valor puede convertirse en un número muy pequeño o negativo.
¿Qué probabilidad hay de que CWE-190 sea explotada?
MITRE califica la probabilidad de explotación de CWE-190 como medium.
¿Qué plataformas afecta CWE-190?
CWE-190 se ha observado en: C, Not Technology-Specific.
¿Cuántas CVE rastrea Rainforest para CWE-190?
Rainforest Labs rastrea actualmente 3 CVE publicadas asociadas a CWE-190. Están listadas en esta página.
Potencia tu estrategia de seguridad con Rainforest
Descubre vulnerabilidades a tiempo, prioriza amenazas críticas y protege lo que realmente importa. Rainforest simplifica tus operaciones de seguridad, ahorrando tiempo y reduciendo costos, para que te enfoques en lo que impulsa tu negocio.
