Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 544

Subdesbordamiento de entero

¿Qué es Subdesbordamiento de entero?

Subdesbordamiento de enteroFallo aritmetico (CWE-191) en el que restar de un entero sin signo bajo cero se envuelve a un valor enorme, habilitando asignaciones excesivas o desbordamientos.


El integer underflow ocurre cuando un entero sin signo se decrementa bajo cero, o cuando la aritmetica con signo cruza INT_MIN y el resultado se envuelve a un valor positivo muy grande. El patron clasico es len = header_len - prefix_len con prefix_len controlado por el atacante; el len enorme resultante salta los chequeos de limites y provoca desbordamientos de heap o pila, o lecturas fuera de limites. Ejemplos reales: CVE-2018-1000005 (libcurl) y multiples bugs del kernel donde la aritmetica size_t sobre longitudes de paquete subdesborda. Mitigaciones: aritmetica con signo y comparaciones explicitas, resta verificada (__builtin_sub_overflow, std::safe_int), trampas de overflow en el lenguaje (Rust debug, Swift), fuzzing con sanitizers (UBSan) y validacion estricta de entrada.

Ejemplos

  1. 01

    len = total - header_len que se vuelve 0xFFFFFFFF si total < header_len y luego se usa como tamano de memcpy.

  2. 02

    Kernel Linux CVE-2019-11815 con una resta de longitud restante que subdesborda y habilita un UAF.

Preguntas frecuentes

¿Qué es Subdesbordamiento de entero?

Fallo aritmetico (CWE-191) en el que restar de un entero sin signo bajo cero se envuelve a un valor enorme, habilitando asignaciones excesivas o desbordamientos. Pertenece a la categoría de Ataques y amenazas en ciberseguridad.

¿Qué significa Subdesbordamiento de entero?

Fallo aritmetico (CWE-191) en el que restar de un entero sin signo bajo cero se envuelve a un valor enorme, habilitando asignaciones excesivas o desbordamientos.

¿Cómo funciona Subdesbordamiento de entero?

El integer underflow ocurre cuando un entero sin signo se decrementa bajo cero, o cuando la aritmetica con signo cruza INT_MIN y el resultado se envuelve a un valor positivo muy grande. El patron clasico es len = header_len - prefix_len con prefix_len controlado por el atacante; el len enorme resultante salta los chequeos de limites y provoca desbordamientos de heap o pila, o lecturas fuera de limites. Ejemplos reales: CVE-2018-1000005 (libcurl) y multiples bugs del kernel donde la aritmetica size_t sobre longitudes de paquete subdesborda. Mitigaciones: aritmetica con signo y comparaciones explicitas, resta verificada (__builtin_sub_overflow, std::safe_int), trampas de overflow en el lenguaje (Rust debug, Swift), fuzzing con sanitizers (UBSan) y validacion estricta de entrada.

¿Cómo defenderse de Subdesbordamiento de entero?

Las defensas contra Subdesbordamiento de entero combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.

¿Cuáles son otros nombres para Subdesbordamiento de entero?

Nombres alternativos comunes: Underflow sin signo, CWE-191.

Términos relacionados