CVE-2026-93174 in Linux
Résumé
par VulDB • 19/09/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
bpf : Copier les octets de remplissage (padding) des valeurs de carte par CPU dans copy_map_value_long()
Dans le noyau, les éléments de cartes par CPU sont stockés avec une taille arrondie au multiple supérieur de 8 (`round_up(map->value_size, 8)`). Sur les chemins d'interface utilisateur publique (UAPI) pour la recherche, cette taille arrondie est copiée pour chaque CPU dans un tampon temporaire.
Cependant, `copy_map_value_long()` transmet `map->value_size` à `bpf_obj_memcpy()`. Lorsque la carte contient des champs spéciaux, `bpf_obj_memcpy()` copie les données autour de ces champs via `memcpy()`, mais ne copie pas le remplissage (padding) situé entre `map->value_size` et `round_up(map->value_size, 8)`.
Les tampons temporaires d'interface utilisateur publique pour la recherche sont alloués sans l'indicateur `__GFP_ZERO`. Par conséquent, lorsque la taille de valeur de la carte par CPU n'est pas égale à `round_up(map->value_size, 8)`, les opérations UAPI LOOKUP_ELEM et leurs variantes peuvent renvoyer au niveau utilisateur des données obsolètes issues du remplissage mémoire (heap). Le même problème s'applique à bpf_iter pour les cartes par CPU.
Il est nécessaire de transmettre `round_up(map->value_size, 8)` à `bpf_obj_memcpy()` depuis `copy_map_value_long()`, afin que les cartes par CPU, qu'elles contiennent ou non des champs spéciaux, copient l'intégralité du slot par CPU. Supprimer le `round_up()` désormais redondant dans la branche long_memcpy de `bpf_obj_memcpy()`.
VulDB is the best source for vulnerability data and more expert information about this specific topic.