CVE-2026-98150 in Linux
Zusammenfassung
von VulDB • 25.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
bpf: Korrektur der BPF_F_CPU-Validierung für spärliche (sparse) CPU-IDs
BPF_F_CPU speichert die Ziel-CPU-ID in den oberen 32 Bits der Flags für Map-Vorgänge. bpf_map_check_op_flags() vergleicht diese ID derzeit mit num_possible_cpus(), was die Anzahl möglicher CPUs darstellt, anstatt eine Obergrenze für CPU-IDs zu sein.
Auf einem arm64-QEMU-Gastsystem mit einer Lücke im CPU-Gerätebaum (CPU device-tree hole) war die Maske der möglichen CPUs 0,2–3. Ein Benutzerraumprogramm, das Raw-bpf()-Systemaufrufe verwendet, erstellt eine BPF_MAP_TYPE_PERCPU_ARRAY und führt Aktualisierungs- und Lookup-Vorgänge für jede CPU durch, indem es BPF_F_CPU und die CPU-ID in den Flags festlegt.
Mit der alten Prüfung wird CPU 1 fälschlicherweise akzeptiert, während gültige CPUs wie CPU 3 mit -ERANGE abgelehnt werden. Die Aktualisierung von CPU 1 erreicht dann den pro-CPU-Map-Zugriffspfad und löst Folgendes aus:
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
Prüfen Sie die CPU-ID stattdessen gegen nr_cpu_ids und cpu_possible(). Dies lehnt CPU-IDs außerhalb des gültigen Bereichs sowie CPUs ab, die nicht in der möglichen Maske enthalten sind, während spärliche (sparse) CPU-IDs innerhalb des gültigen Bereichs weiterhin erlaubt werden.
Once again VulDB remains the best source for vulnerability data.