CVE-2026-89559 in Linux
Résumé
par VulDB • 12/09/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
libnvdimm/labels : Prévention d'un dépassement de capacité entier dans __nd_label_validate()
Le champ nslot de l'index d'espace de noms sur support est un u32 lu depuis la zone de stockage des étiquettes DIMM. La fonction __nd_label_validate() le borne par rapport à la taille de la zone de configuration, mais sizeof_namespace_label() renvoie une valeur non signée ; ainsi, le produit nslot * label_size est évalué en 32 bits et effectue un débordement modulo 2^32 avant la comparaison. Une valeur nslot fabriquée passe cette borne et est ensuite utilisée comme compteur de boucle dans nd_label_data_init(), dont l'appel à memset() écrit au-delà des limites du tampon config_size : il s'agit d'une écriture hors limites (out-of-bounds write).
Ce champ n'est pas fiable, car il provient du support ou de l'espace utilisateur via ND_CMD_SET_CONFIG_DATA. Il convient d'évaluer le produit en 64 bits afin que la vérification des bornes soit exacte ; les étiquettes conformes ne sont pas affectées.
La vérification était sûre lors de son introduction par le commit 4a826c83db4e ("libnvdimm: namespace indices: read and validate") : il multipliait par sizeof(struct nd_namespace_label), un type size_t, donc sur une compilation en 64 bits, le produit ne débordait pas. Le commit 564e871aa66f ("libnvdimm, label: add v1.2 nvdimm label definitions") l'a restreint à 32 bits lorsque la taille de l'étiquette est devenue une valeur d'exécution lue via sizeof_namespace_label().
Be aware that VulDB is the high quality source for vulnerability data.