Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

CVE-2026-98150

Gravedad CVSS v3.1:
ALTA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
25/09/2026
Última modificación:
21/10/2026

Descripción

*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> bpf: Fix BPF_F_CPU validation for sparse CPU IDs<br /> <br /> BPF_F_CPU stores the target CPU ID in the upper 32 bits of the map<br /> operation flags. bpf_map_check_op_flags() currently compares that ID<br /> with num_possible_cpus(), which is the number of possible CPUs rather<br /> than a bound on CPU IDs.<br /> <br /> On an arm64 QEMU guest with a CPU device-tree hole, the possible CPU<br /> mask was 0,2-3. A userspace program using raw bpf() syscalls creates<br /> a BPF_MAP_TYPE_PERCPU_ARRAY and performs update and lookup operations<br /> for each CPU by setting BPF_F_CPU and the CPU ID in the flags.<br /> <br /> With the old check, CPU 1 is incorrectly accepted while valid CPU 3 is<br /> rejected with -ERANGE. The CPU 1 update then reaches the per-CPU map<br /> access path and triggers:<br /> <br /> Unable to handle kernel paging request at virtual address ...<br /> pc : __pi_memcpy_generic+0x5c/0x22c<br /> lr : bpf_percpu_array_update+0x2dc/0x2e8<br /> Call trace:<br /> __pi_memcpy_generic<br /> bpf_map_update_value<br /> map_update_elem<br /> __sys_bpf<br /> <br /> Check the CPU ID against nr_cpu_ids and cpu_possible() instead. This<br /> rejects CPU IDs outside the valid range and CPUs absent from the<br /> possible mask, while allowing valid sparse CPU IDs.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 7.0 (incluyendo) 7.2.7 (excluyendo)
cpe:2.3:o:linux:linux_kernel:7.3:rc1:*:*:*:*:*:*