CyberGlossary

Vulnerabilidades

Desreferencia de puntero nulo

También conocido como: Null deref

Definición

Fallo en el que un programa lee o escribe a través de un puntero cuyo valor es nulo (o inválido), provocando normalmente un cierre del proceso y, a veces, posibilitando explotación.

Las desreferencias de puntero nulo (CWE-476) ocurren cuando el código accede a un puntero que nunca fue inicializado, se puso a NULL tras liberar o cuya función emisora falló silenciosamente. En la mayoría de los sistemas modernos esto causa una segmentation fault y el proceso muere, lo que se traduce en denegación de servicio. En entornos restringidos —kernels antiguos donde la dirección cero es mapeable, sistemas embebidos sin MMU, ciertos compiladores JIT— las desreferencias nulas pueden convertirse en primitivas de corrupción de memoria. Defensas: comprobación estricta de nulos, características de lenguaje (Optional/Maybe, referencias no nulas), análisis estático, pruebas con sanitizers y controles del sistema como mmap_min_addr para prohibir mapear direcciones bajas.

Ejemplos

  • Servidor web que cae cuando falta una cabecera opcional.
  • Bugs históricos de null-deref del kernel Linux explotables cuando mmap_min_addr era 0.

Términos relacionados