VUSec opisuje Branch Target Reuse (BTR), wariant Spectre v2, który wykorzystuje nieaktualne predykcje skoków pośrednich po zwolnieniu i ponownym użyciu pamięci kodu JIT. W dwóch demonstracjach Linux cBPF badacze odzyskali hash hasła root z pamięci działającego procesu su. VUSec podaje, że mitigacja x86 trafiła do głównej gałęzi jądra. Opis badań VUSec
Branch Target Reuse i demonstracja hasha w Linuksie
VUSec opisuje BTR jako atak na silniki JIT, które tłumaczą kod podczas działania programu. Gdy silnik zwalnia wcześniej wygenerowany kod, a później wykorzystuje to samo miejsce w pamięci dla nowego kodu, procesor może nadal pamiętać cel wcześniejszego skoku pośredniego. Spekulacyjne wykonanie może wtedy trafić w nowy kod pod nieaktualnym adresem.
W demonstracji linuksowej wykorzystano klasyczny BPF, czyli cBPF, dostępny dla nieuprzywilejowanych programów. Programy cBPF zainstalowano jako filtry seccomp. VUSec opisuje dwa exploity end-to-end: jeden w domyślnej konfiguracji, a drugi działający także przy włączonym zaciemnianiu stałych (constant blinding).
Celem demonstracji był hash hasła root znajdujący się w pamięci działającego procesu su. Hash to skrót używany do przechowywania i weryfikowania hasła, a nie samo hasło w jawnej postaci. Jego odzyskanie nie ujawnia więc automatycznie hasła: jego złamanie zależy między innymi od użytego algorytmu i siły hasła.
Jak stara predykcja trafia na ponownie użyty kod JIT
Procesor przewiduje, dokąd może prowadzić skok pośredni, żeby wcześniej rozpocząć wykonywanie instrukcji. BTR wykorzystuje sytuację, w której taka predykcja pozostaje w procesorze, mimo że pierwotny kod został już zwolniony, a jego adres otrzymał nowy fragment JIT.
W ten sposób predyktor może skierować spekulacyjne wykonanie do nowego kodu, korzystając ze starej informacji o celu skoku. VUSec podaje, że w linuksowym exploicie wyciek następował z szybkością ośmiu bajtów na sekundę; technika pointer chasing ogranicza ilość danych potrzebną do dotarcia do poszukiwanego sekretu.
Wyniki dla Linuksa, SpiderMonkey i GraalVM
Badacze podali średni czas odzyskania hasha wynoszący trzy minuty na Raptor Cove i pięć minut na Lion Cove. VUSec opisuje te wyniki jako część demonstracji linuksowej; nie są one miarą czasu potrzebnego na złamanie hasła.
Wyniki dotyczące silników przeglądarek i środowisk uruchomieniowych były inne niż pełny exploit Linux cBPF. W Firefox SpiderMonkey powstał proof of concept pokazujący, że stare predykcje mogą przetrwać zwolnienie i ponowne przydzielenie kodu. Nie ukończono jednak kompletnego exploita przeglądarkowego. W testowanych procesorach Intel badacze szacowali szybkość wycieku w SpiderMonkey na dziesiątki bajtów na sekundę.
W Oracle GraalVM eksperymenty obejmowały spekulacyjne pominięcie maski sandboxa, ale kompilacja i garbage collection czyściły wpisy predyktora przed ukończeniem ataku. Oracle zastosowało w GraalVM losowanie położenia obszarów pamięci podręcznej kodu JIT.
Zgłoszona mitigacja Linuksa
VUSec podaje, że programiści jądra Linuksa włączyli do głównej gałęzi mitigację x86, która uruchamia IBPB na wszystkich rdzeniach, gdy program cBPF ponownie wykorzystuje obszar wcześniej zajmowany przez kod cBPF lub eBPF. Mechanizm ma również zniechęcać do takiego ponownego użycia. IBPB to bariera predykcji skoków pośrednich.
VUSec wymienia w związku z problemami BPF identyfikatory CVE-2026-64507 i CVE-2026-64508. Grupa zaleca aktualizowanie systemu operacyjnego i oprogramowania, gdy dostawcy udostępniają poprawki.
Zakres testów CPU i plan publikacji pracy
VUSec informuje, że badane zachowanie potwierdzono na każdym przetestowanym procesorze z platform Intel, AMD i Arm. Ten wynik dotyczy procesorów objętych testami; linuksową demonstrację odzyskania hasha opisano osobno dla Raptor Cove i Lion Cove.
Praca o BTR została przyjęta na konferencję ACM CCS 2026. Według VUSec jej publikację zaplanowano na listopad 2026 roku.