CVE-2026-53671
KrytyczneCVSS 9.3Streszczenie
W weryfikatorze eBPF PREVAIL przed wersją 0.2.4 abstrakcyjny transformer traktuje zapisy przez rejestr bazowy typu T_CTX jako cichą operację no-op. Atakujący może stworzyć program eBPF, który nadpisuje pole kontekstu (np. ctx->data), przeładowuje je jako T_PACKET i dereferencjonuje adres kontrolowany przez atakującego, a PREVAIL uzna program za bezpieczny.
Ocena ryzyka
Niebezpieczne programy eBPF mogą zostać załadowane do jądra, co może prowadzić do naruszenia integralności pamięci i eskalacji uprawnień.
Rekomendacja
Zaktualizuj PREVAIL do wersji 0.2.4 lub nowszej, która zawiera poprawkę.
Inne podatności w PREVAIL
Zobacz wszystkie- CVE-2026-53706Wysokie
W wersjach PREVAIL przed 0.2.4 weryfikator eBPF akceptuje instrukcje ALU32 ADD i SUB działające na rejestrach typu wskaźnik bez sprawdzania flagi is64. Ponieważ arytmetyka ALU32 zeruje górną połowę 32-bitowego wyniku, górna część wskaźnika jest niszczona w czasie wykonania, a PREVAIL oznacza program jako bezpieczny. Każdy, kto może przesłać program eBPF do weryfikacji, może wygenerować program, który przechodzi weryfikację, ale powoduje błędy w czasie wykonania. Problem naprawiono w wersji 0.2.4.
- CVE-2026-53670Krytyczne
W weryfikatorze eBPF PREVAIL przed wersją 0.2.4 funkcja EbpfTransformer::add() pomija aktualizacje offsetu, gdy rejestr docelowy ma niejednoznaczny zestaw typów. Kolejne sprawdzenia granic używają nieaktualnego offsetu i akceptują dostęp do pamięci poza zakresem, przez co spreparowany program BPF przechodzi weryfikację, mimo że w czasie wykonania uszkodziłby pamięć.
Oryginalny opis (angielski, źródło NVD)
PREVAIL is a Polynomial-Runtime EBPF Verifier using an Abstract Interpretation Layer. Prior to version 0.2.4, the abstract transformer in prevail treats writes through a T_CTX-typed base register as a silent no-op: do_mem_store in src/crab/ebpf_transformer.cpp only models T_STACK stores, and the checker's T_CTX bounds arm never tests AccessType::write. An attacker can craft an eBPF program that overwrites a context field (e.g., ctx->data), reload that field typed as T_PACKET, and dereference an attacker-controlled address — and prevail will report the program as safe. This issue has been patched in version 0.2.4.

