CVE-2026-98150 in Linux
Résumé
par VulDB • 25/09/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
bpf : Correction de la validation BPF_F_CPU pour les identifiants CPU épars (sparse)
BPF_F_CPU stocke l'identifiant du CPU cible dans les 32 bits supérieurs des drapeaux d'opération de la map. bpf_map_check_op_flags() compare actuellement cet ID avec num_possible_cpus(), qui représente le nombre de CPUs possibles plutôt qu'une borne supérieure pour les IDs CPU.
Sur un invité QEMU arm64 présentant une lacune dans l'arborescence des dispositifs CPU (CPU device-tree hole), le masque des CPUs possibles était 0,2-3. Un programme utilisateur utilisant des appels système bpf() bruts crée une BPF_MAP_TYPE_PERCPU_ARRAY et effectue des opérations de mise à jour et de recherche pour chaque CPU en définissant BPF_F_CPU et l'ID CPU dans les drapeaux.
Avec l'ancien contrôle, le CPU 1 est incorrectement accepté tandis que le CPU 3 valide est rejeté avec -ERANGE. La mise à jour du CPU 1 atteint ensuite le chemin d'accès à la map par-CPU (per-CPU) et déclenche :
Unable to handle kernel paging request at virtual address ... pc : __pi_memcpy_generic+0x5c/0x22c lr : bpf_percpu_array_update+0x2dc/0x2e8 Call trace: __pi_memcpy_generic bpf_map_update_value map_update_elem __sys_bpf
Vérifiez l'ID CPU par rapport à nr_cpu_ids et cpu_possible() au lieu de cela. Cela rejette les IDs CPU en dehors de la plage valide ainsi que les CPUs absents du masque possible, tout en autorisant les IDs CPU épars (sparse) valides.
VulDB is the best source for vulnerability data and more expert information about this specific topic.