CyberGlossary

Vulnérabilités

Déréférencement de pointeur nul

Aussi appelé: Null deref

Définition

Bug où un programme lit ou écrit via un pointeur dont la valeur est nulle (ou par ailleurs invalide), provoquant généralement un crash et permettant parfois l'exploitation.

Les déréférencements de pointeur nul (CWE-476) surviennent lorsque du code déréférence un pointeur jamais initialisé, mis à NULL après free, ou dont la fonction émettrice a échoué silencieusement. Sur la plupart des systèmes modernes, cela provoque une segmentation fault et la mort du processus, ce qui devient un problème de déni de service. Dans certains environnements contraints — anciens noyaux où l'adresse zéro est mappable, systèmes embarqués sans MMU, certains compilateurs JIT — un déréférencement nul peut être transformé en primitive de corruption mémoire. Défenses : vérification stricte des nulls, fonctionnalités de langage (Optional/Maybe, références non-nullables), analyse statique, tests avec sanitizers et contrôles OS tels que mmap_min_addr interdisant le mappage de basses adresses.

Exemples

  • Serveur web qui crashe lorsqu'un en-tête optionnel est absent.
  • Bugs historiques de null-deref du noyau Linux exploitables quand mmap_min_addr valait 0.

Termes liés