Katalog CVE

CVE-2026-68462

WysokieCVSS 7.8
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.12%

Percentyl 2 - wyżej niż 2% wszystkich znanych CVE

Streszczenie

W jądrze Linux w podsystemie BPF weryfikator odrzuca zmienne offsety dla wskaźników PTR_TO_TP_BUFFER i PTR_TO_BUF, ale akceptuje stały ujemny offset powstały w wyniku arytmetyki wskaźników. Problem wynika z przeniesienia stałych offsetów do reg->var_off, podczas gdy __check_buffer_access() sprawdza tylko offset instrukcji. Dla zapisywalnych surowych tracepointów dostęp z ujemnym offsetem może zawinąć obliczony koniec dostępu, umożliwiając programowi ominięcie walidacji.

Ocena ryzyka

Podatność może pozwolić nieuprzywilejowanemu użytkownikowi na ominięcie kontroli dostępu do buforów w BPF, co może prowadzić do eskalacji uprawnień lub naruszenia integralności danych.

Rekomendacja

Zaleca się aktualizację jądra Linux do wersji zawierającej poprawkę, która odrzuca ujemne stałe offsety dla wskaźników buforów w weryfikatorze BPF.

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

In the Linux kernel, the following vulnerability has been resolved: bpf: Reject negative const offsets for buffer pointers The verifier rejects variable offsets for PTR_TO_TP_BUFFER and PTR_TO_BUF accesses, but it currently accepts a constant negative offset produced by pointer arithmetic. Commit 022ac0750883 ("bpf: use reg->var_off instead of reg->off for pointers") moved constant pointer offsets from reg->off to reg->var_off. However, __check_buffer_access() continued to check only the instruction offset. An access with reg->var_off equal to -8 and an instruction offset of zero therefore passes verification. For writable raw tracepoints, the access end is also calculated from the unsigned reg->var_off.value. An eight-byte access starting at -8 wraps the calculated end to zero, allowing the program to load and attach without increasing max_tp_access. After ensuring that reg->var_off is constant, calculate the effective access start using signed arithmetic and reject it when it is negative. Use the validated start to calculate the access end for both PTR_TO_TP_BUFFER and PTR_TO_BUF.

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