Geçen hafta paylaşılan yeni bir araştırma, Spectre v2 sınıfındaki bir yan kanalı hedef alan Branch Target Reuse (BTR) adlı varyantın, yamalı bir Intel sistemde bile Linux çekirdeğinden kök parola özetini dakikalar içinde sızdırabildiğini ortaya koydu. Etkilenenler arasında Mozilla Firefox’un SpiderMonkey JIT motoru, GraalVM ve Linux çekirdeğinin cBPF JIT yapısı yer alıyor.
Çalışma, saldırının yalnızca belirli bir işlemci ailesine değil, farklı CPU üreticilerinin modern öngörme mekanizmalarına dayandığını; ancak pratik istismarın özellikle JIT motorları üzerinden mümkün hale geldiğini gösteriyor. Araştırmacılar, BTR’nin Linux tarafında CVE-2026-64507 ve CVE-2026-64508 numaralarıyla yamalandığını da aktardı.
Spectre v2’ye ait bu yeni varyantın BTR adıyla anılmasının nedeni, işaret ettiği açığın dal tahminiyle kodun yeniden yazılması arasındaki çakışmadan doğması. Spectre ailesi ilk olarak 2017’de keşfedilen CPU güvenlik açıklarını ifade ediyor ve işlemcilerin spekülatif yürütme tekniğini suistimal ediyor. Bu teknikte modern işlemciler, talimatları önceden tahmin edip çalıştırıyor; saldırgan da CPU’yu gizli verilere erişen spekülatif işlemler yapmaya yönlendirip bu veriyi cache zamanlama yan kanalıyla çıkarabiliyor.
Spectre v2 ise bu ailenin indirect branch prediction mekanizmasını kötüye kullanan özel bir türü olarak tanımlanıyor. Saldırgan, CPU’nun dallanma tahmin mekanizmasını zehirleyerek kurban programın dolaylı bir dal çalıştırmasını sağlıyor. CPU yanlış tahminle saldırganın denetimindeki bir kodu ya da gadget’ı geçici olarak yürütüyor. Sonuçlar mimari düzeyde geri alınsa da, cache durumundaki değişiklikler ölçülerek kurbanın spekülatif yürütmede neye eriştiği anlaşılabiliyor.
Eski dallanma hedefi yeni koda dönüyor
Sander Wiebing, Yuhui Zhu, Alessandro Biondi ve Cristiano Giuffrida’nın kaleme aldığı makaleye göre BTR’nin temel fikri, işlemcinin kendi değiştirilmiş kodu yeniden uyumlu hale getirmesi ile eski indirect branch prediction girdilerini temizlememesi arasındaki boşlukta ortaya çıkıyor. Yani CPU, kod değiştiğinde mimari düzeyde tutarlılığı geri getiriyor ama dallanma hedefi tahminindeki eski kayıtları silmeyebiliyor.
Araştırmacılar, BTR’nin JIT motorlarını ve self-modifying code ile indirect branch prediction arasındaki etkileşimi hedef aldığını belirtiyor. Bu kombinasyonun, JIT motorlarında ilk kez istismar edilebilir geçici yürütme fırsatları yarattığını söylüyorlar.
JIT motorlarında bu eski hedefler, orijinal kodun ömrünü aşıp daha sonra kod önbelleği yeniden doldurulduğunda tekrar kullanılabiliyor. Böylece saldırgan, geçici yürütme sırasında “execute-after-free” benzeri bir ilke elde ediyor. Makaleye göre bu durum, kontrol akışının yeni üretilen koda eski ofsetlerden yönlendirilmesine, yazılımsal sertleştirmelerin atlatılmasına ya da yanlış hizalanmış gadget’lara ulaşılmasına kapı açıyor.
BTR’nin değerlendirildiği üç bileşen SpiderMonkey, GraalVM ve Linux çekirdeğinin cBPF JIT yapısı oldu. Araştırmacılar, bu bileşenlerin tamamının etkilendiğini ancak istismar edilebilirlik özellikleri ve sızıntı hızlarının “belirgin biçimde farklı” olduğunu kaydetti.
Spekülatif yürütme, işlemcilerin performans için talimatları önceden tahmin edip çalıştırdığı tekniklerden biri. Spectre ailesi de tam olarak bu davranışı suistimal ediyor. CPU yanlış dalı kısa süreliğine yürüttükten sonra sonuçları mimari düzeyde geri alsa da, cache üzerinde bıraktığı izler zamanlama ölçümleriyle okunabiliyor. Spectre v2 ise bu modelin, indirect branch prediction üzerinden çalışan özel biçimi olarak öne çıkıyor.
BTR’nin yeni tarafı, saldırının self-modifying code ile indirect branch prediction arasındaki etkileşimden doğması. Araştırmacılar, JIT motorlarının bu yöntemle ilk kez istismar edilebilir geçici yürütme fırsatları sunduğunu savunuyor.
Makaledeki temel çıkarım, modern CPU’ların kendi değiştirdikleri koddan sonra mimari kod tutarlılığını sağlasa da eski dolaylı dallanma tahmin girdilerini mutlaka geçersiz kılmaması. Araştırmacıların ifadesiyle, “kod yeniden yazıldığında” gerekli tüm mikro-mimari durum yeniden eşzamanlanmıyor.
Aynı dallanma, farklı anlam
Saldırı zinciri, saldırganın JIT motoru içinde ayrıcalıksız kod çalıştırabildiği varsayımıyla başlıyor. İlk adımda motor, eğitim amaçlı bir bellek bloğu ayırmaya zorlanıyor ve kurban dallanmanın bu bloğa zıplaması sağlanıyor. Böylece Branch Target Buffer içinde mevcut giriş noktasını işaret eden bir kayıt oluşuyor.
Ardından eğitim bloğu serbest bırakılıyor ve aynı adresin bir bölümünü yeniden kullanan hedef blok ayrılıyor. Saldırgan dallanmayı yeniden tetiklediğinde CPU, güncelliğini yitirmiş BTB kaydını kullanıyor ve spekülatif olarak eski eğitim bloğunun giriş noktasına atlıyor. Araştırmacıların tarifine göre son aşamada kontrol akışı saptırılıyor ve gizli veri açığa çıkıyor.
Giuffrida, bu tekniği “aynı indirect branch’in hem eğitim hem test için kullanıldığı pratik bir in-place Spectre v2 saldırısının ilk örneği” olarak tanımladı. Klasik Spectre v2 vakalarında saldırı, bir indirect branch hedefini başka bir hedefe kaydıran “uzamsal” ihlaller üzerinden ilerliyordu. BTR’de ise aynı dallanma ve aynı hedef korunuyor, değişen şey hedefin anlamı oluyor. Bu yüzden araştırmacılar yaklaşımı “zamansal” bir Spectre v2 saldırısı olarak sınıflandırıyor.
Tekniğin çalışması için eski BTB girdisinin, JIT motoru eğitim bloğunu serbest bıraktıktan sonra temizlenmemiş ya da değiştirilememiş olması gerekiyor. Bir diğer şart da işlemcinin tahmin sırasında tam olarak bu eski girdiyi seçmesi. Bu iki koşul bir araya geldiğinde, işlemci mimari olarak geçersiz sayılan bir giriş noktasına kısa süreliğine sapabiliyor.
Araştırmacılar, bu yönlendirme sayesinde saldırganın Spectre sertleştirmelerini devre dışı bırakabildiğini ya da yanlış hizalanmış talimatlar çalıştırabildiğini belirtiyor. Amaç, nihayetinde gizli veriyi açığa çıkarmak.
Giuffrida, BTR’nin herhangi bir uzamsal ihlale dayanmadığını, bir indirect branch ile tek bir hedefin yeterli olduğunu söyledi. Ona göre asıl koşul, temel alınan kodun saldırgan kontrollü biçimde anlam değiştirmesi. Araştırmacı, bunun JIT motorlarında uygulanabilir olduğunu ve bu yüzden saldırının pratik hale gelebildiğini vurguladı.
Linux çekirdekleri artık cBPF gibi JIT motorları çalıştırdığı için, BTR’nin erişim alanı bu alanda da belirginleşiyor. Araştırmacılar, bu nedenle riskin yalnızca tarayıcı içi bir senaryo ile sınırlı kalmadığını, işletim sistemi çekirdeği tarafına da uzanabildiğini aktardı.
Linux çekirdeğinde dakika bazında sızıntı
Çalışmanın en çarpıcı kısmı, Linux çekirdeğine karşı geliştirilen iki uçtan uca istismar senaryosu oldu. Araştırmacılar, bu senaryoların tam yamanmış, varsayılan korumaları açık bir Intel sistemde root parola özetini dakikalar içinde sızdırıp geri getirebildiğini aktardı.
BTR’nin, daha önce yayımlanan Training Solo savunmalarını da aştığı belirtiliyor. Bu savunmalar CVE-2024-28956 ve CVE-2025-24495 olarak takip ediliyor. Giuffrida’ya göre burada kritik ayrım, saldırının herhangi bir uzamsal ihlal gerektirmemesi. “Tek bir indirect branch ve tek bir hedef yeterli” diyen araştırmacı, saldırının ancak kodun anlamı saldırganın kontrol ettiği şekilde değiştiğinde mümkün olduğunu söyledi.
GraalVM tarafında araştırmacılar, JIT kod önbelleği konumlarını rastgeleleştirerek bölge yeniden kullanımını zorlaştırdığını kaydetti. Mozilla cephesinde ise IBPB, yani Indirect Branch Predictor Barrier temelli önlemler değerlendirildi; ancak şirketin şu anda site isolation’ın tamamlanması ve dağıtımına öncelik verdiği belirtildi.
Sorumlu bildirim sürecinin ardından BTR için geliştirilen önlemler Linux çekirdeğine alındı. Araştırmacılar, bunun CVE-2026-64507 ve CVE-2026-64508 olarak kayda geçtiğini bildirdi. Yama setinin çekirdeğe işlendiği aktarılırken, ayrıntılı teknik azaltım mekanizmaları üzerinde de çalışıldığı anlaşılıyor.
Araştırma ekibi, BTR’nin üç sonucu olduğunu söylüyor: in-place Spectre v2 saldırıları artık zamansal alanda uygulanabilir hale geldi; JIT motorlarının ya site isolation benzeri izolasyon mekanizmaları ya da cBPF’deki IBPB örneğine benzer özel BTR savunmaları kullanması gerekiyor; modern CPU’lar kod yeniden yazıldığında gerekli tüm mikro-mimari durumu eşzamanlamıyor ve bunu eksiksiz yapmak da maliyetli olduğu için benzer sorunların ileride yeniden ortaya çıkması mümkün görünüyor.
Yayın, MIT CSAIL araştırmacıları Daniël Trujillo ve Mengjia Yan’ın iki ay önce duyurduğu Interrupt Injection tekniğinin ardından geldi. O çalışma, Spectre v2 savunmalarını aşarak Intel ve AMD tabanlı Linux sistemlerde keyfi çekirdek belleği sızdırabildiğini göstermişti. Böylece spekülatif yürütme temelli saldırı sınıfında yeni bir halka daha eklenmiş oldu.
