BTR: нова Spectre-v2 атака изтича памет от ядрото

Изследователи от VUSec при Vrije Universiteit Amsterdam и Scuola Superiore Sant’Anna в Пиза обявиха на 29 септември нова атака от семейството Spectre-v2, наречена Branch Target Reuse (BTR). С нея са извлекли хеша на root паролата от напълно закърпена Intel машина с включени по подразбиране защити — за минути. Атаката е първата практична Spectre-v2 атака, която се насочва срещу just-in-time (JIT) компилаторите, и според The Hacker News е получила два идентификатора: CVE-2026-64507 и CVE-2026-64508.
Какво точно прави BTR
Класическите Spectre-v2 атаки разчитат на това да подведат процесора да прескочи спекулативно на друг адрес. BTR обръща логиката: индиректният клон и целевият адрес остават едни и същи, но смисълът на този адрес се променя.
Схемата е следната. Нападателят първо „обучава“ жертвения клон да сочи към парче JIT код, което сам е накарал средата да генерира. После се грижи това парче да бъде освободено, а на същите адреси да се излее нов, несвързан код. Когато клонът се задейства отново, процесорът все още помни старата прогноза и спекулативно влиза в средата на новите инструкции — на изместване, което никой компилатор не е предвидил. Каквото се получи на това място, се превръща в използваем gadget.
Ръководителят на изследването Cristiano Giuffrida го формулира кратко: досегашното допускане е било, че щом кодът се промени, старите прогнози са безобидни. „BTR показва, че това допускане е неправилно, когато можеш да проведеш «темпорални» Spectre-v2 атаки, при които индиректният клон и дори целта остават същите, но «значението» на целта се променя“, обяснява той.
По същество става дума за спекулативен use-after-free върху изпълним код — нещо, което дотук не е било в списъка на заплахите, срещу които JIT двигателите се пазят.
Снимка: VUSec, Vrije Universiteit Amsterdam
Три реални цели: Linux, GraalVM и Firefox
Екипът — Sander Wiebing, Yuhui Zhu, Alessandro Biondi и Cristiano Giuffrida — е изследвал атаката срещу три различни JIT двигателя:
- cBPF JIT в Linux ядрото. Работещият exploit изтича около 8 байта в секунда от паметта на ядрото. Достатъчно е: хешът на root паролата от процеса
suпада за около три минути на Intel Raptor Cove и около пет минути на Lion Cove. По пътя атаката заобикаля и FineIBT — хардуерно подпомогнатата защита на индиректните клонове. - Oracle GraalVM. В средата за изпълнение на Java и полиглот приложения повторното използване на адреси е стабилно, но собствената ѝ компилация и събирането на боклук изтриват прогнозите, преди атаката да завърши.
- SpiderMonkey, JavaScript двигателят на Mozilla Firefox. Тук има работещ PoC, а изтичането е оценено на десетки байтове в секунда — темпо, при което злонамерена страница може да събира данни от чужд сайт в същия процес. Довеждането му до пълен браузърен exploit изисква още работа.
Според The Register всички процесори, които екипът е тествал, са засегнати — Intel, AMD и Arm. Причината е, че слабостта не е в конкретна имплементация, а в самия принцип на предсказване на индиректните клонове.
Кръпките вече са пуснати
Разкритието е координирано и производителите са реагирали преди публикацията.
В Linux ядрото са влезли два вида промени. CVE-2026-64507 добавя IBPB flush (Indirect Branch Predictor Barrier) при заделяне на памет за BPF JIT код, когато тази памет вече е била използвана за изпълняван BPF код. CVE-2026-64508 добавя закаляване против JIT spraying. И двете имат цена: всяко изчистване на предсказващите структури се плаща с производителност, затова ядрото и избягва повторното използване на региони за JIT код.
Oracle е избрала друг подход за GraalVM — случайно разположение на JIT кеша за код, така че нападателят да не може да разчита кой адрес ще бъде презаписан с какво.
Mozilla засега не въвежда IBPB-базирана защита, а ускорява внедряването на site isolation, при която всеки сайт живее в собствен процес. IBPB мерки се обмислят, но не са приоритет. Практическият извод за потребителите на Firefox е прост: държете браузъра актуален и включете изолацията на сайтове, когато стане достъпна по подразбиране.
Ако администрирате Linux сървъри, обърнете внимание на BPF. Мерките срещу BTR са полезни само ако ядрото е обновено, а неограниченият достъп до BPF от непривилегировани процеси остава най-удобната входна точка за тази атака.
Защо това има значение
Осем години след първоначалния Spectre от януари 2018 г. индустрията беше приела, че основните варианти са овладени с IBRS, retpoline, eIBRS и FineIBT. BTR показва, че дупката не е запушена, а преместена — от статичния код към кода, който се генерира по време на изпълнение. А JIT компилатори днес има навсякъде: в браузърите, в Java средите, дори вътре в самото ядро.
Пълната работа е приета за ACM CCS 2026, която ще се проведе от 15 до 19 ноември в Хага. Дотогава техническите детайли са публикувани на сайта на VUSec, включително видеодемонстрацията с su.
За администраторите новината не е катастрофа, а работа: обновявате ядрото, обновявате браузъра, ограничавате достъпа до BPF. Същата логика важи и за другите скорошни спешни кръпки — от нулевия ден в CoreGraphics на Apple до всичко, което докосва Linux контейнери, включително новите WSL контейнери на Microsoft. Разликата при BTR е, че този път проблемът е в силиция, а софтуерът само го заобикаля.
Харесва ви? Отбележете ни и ще ни виждате по-нагоре в Google.
Предпочитан източник в Google