Katalog CVE

CVE-2026-98049

Nieznane
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

W jądrze Linux w podsystemie BPF funkcja is_cmpxchg_insn() dopasowuje tylko BPF_MODE == BPF_ATOMIC, przez co arena cmpxchg nie otrzymuje wymaganego rozszerzenia zerowego dla 32-bitowej operacji. Może to prowadzić do nieprawidłowych wartości w rejestrze docelowym na architekturach wymagających jawnego rozszerzenia zerowego.

Ocena ryzyka

Nieprawidłowe rozszerzenie zerowe wyniku 32-bitowego cmpxchg w programach BPF może prowadzić do błędnego działania programów eBPF, potencjalnie powodując błędy logiczne lub obejście mechanizmów bezpieczeństwa.

Rekomendacja

Zaktualizuj jądro Linux do wersji z poprawką, która modyfikuje is_cmpxchg_insn() tak, aby dopasowywała BPF_PROBE_ATOMIC obok BPF_ATOMIC.

Inne podatności w Linux kernel

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

In the Linux kernel, the following vulnerability has been resolved: bpf: zero extend the result of an arena 32-bit cmpxchg bpf_convert_ctx_accesses() rewrites an atomic on an arena pointer from BPF_STX | BPF_ATOMIC to BPF_STX | BPF_PROBE_ATOMIC, and it runs before bpf_opt_subreg_zext_lo32_rnd_hi32(). That pass emits an explicit zero extension for a 32-bit cmpxchg even when bpf_jit_needs_zext() is false. This is done because on some architectures 32-bit cmpxchg requires explicit zero extension for the dst register. E.g. on x86-64 'lock cmpxchg' does not change the %eax if comparison is successful, while BPF semantics declare that each operation on a 32-bit register zero extends it's upper half. is_cmpxchg_insn() matches BPF_MODE == BPF_ATOMIC only, so an arena cmpxchg misses said zero extension adjustment. This patch adjusts is_cmpxchg_insn() to match BPF_PROBE_ATOMIC alongside BPF_ATOMIC.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS