Desreferencia de puntero nulo
¿Qué es Desreferencia de puntero nulo?
Desreferencia de puntero nuloFallo 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
- 01
Servidor web que cae cuando falta una cabecera opcional.
- 02
Bugs históricos de null-deref del kernel Linux explotables cuando mmap_min_addr era 0.
● Preguntas frecuentes
¿Qué es Desreferencia de puntero nulo?
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. Pertenece a la categoría de Vulnerabilidades en ciberseguridad.
¿Qué significa Desreferencia de puntero nulo?
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.
¿Cómo defenderse de Desreferencia de puntero nulo?
Las defensas contra Desreferencia de puntero nulo combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para Desreferencia de puntero nulo?
Nombres alternativos comunes: Null deref.