Firmware güvenlik firması Binarly'deki araştırmacılar, ev yönlendiricilerinden akıllı kameralara ve veri merkezi sunucularındaki yönetim çiplerine kadar çeşitli donanımları başlatan küçük program U-Boot'ta altı yeni kusur buldu.
Bu kusurlardan dördü bir cihazı çökertebiliyor. Diğer ikisi ise, bir saldırganın bootloader'ın önüne kötü niyetli bir imaj yerleştirmesi durumunda, cihaz yazılımın gerçek olduğunu doğrulamadan önce kendi kodunu çalıştırmasına olanak tanıyabiliyor.
Son kısım asıl önemli olan. Bir bootloader, işletim sisteminden önce çalışır, bu nedenle buradaki bir açık, ardından yüklenen her şeyi tehlikeye atabilir. Altı kusurun tümü, U-Boot henüz güvenilmeyen bir imajı okurken, imzayı kontrol etmeden önce tetikleniyor.
Binarly'nin Bulguları
U-Boot, bir çekirdek, aygıt ağacı, ramdisk ve diğer önyükleme bileşenlerini FIT (Düzleştirilmiş İmaj Ağacı) adı verilen tek bir pakette birleştirebiliyor ve kontrolü devretmeden önce bu paketin dijital imzasını kontrol ediyor.
Binarly, bu kontroldeki zayıf noktaları aradı ve altı tane buldu. Binarly'ye göre, açık içeren kodun çoğu U-Boot sürüm 2013.07'den beri var ve 50'den fazla kararlı sürümü etkiliyor. Ayrıca, U-Boot üzerine inşa edilmiş birçok satıcı donanım yazılımında da bulunuyor.
Kusurlar, Binarly danışma notlarında BRLY-2026-037 ile BRLY-2026-042 arasında takip ediliyor. Henüz herhangi bir CVE tanımlayıcısı atanmadı. İki gruba ayrılıyorlar: kod çalıştırabilen iki kusur ve yalnızca çökmeye neden olan dört kusur.
Bu iki kusur BRLY-2026-037 ve BRLY-2026-038 ve her ikisi de kontrol edilmeyen bir değere dayanıyor. U-Boot, ödünç aldığı aygıt ağacı ayrıştırma kütüphanesinde bir arama olan fdt_get_name'i çağırıyor ve hatalı biçimlendirilmiş bir imajda bu arama boş bir işaretçi ve negatif bir uzunluk döndürüyor. U-Boot, ikisini de kontrol etmeden kullanıyor.
Bir kusur, boş işaretçiyi bir bellek kopyasına yönlendiriyor ve adres sıfırın eşlendiği cihazlarda bu bir yığın taşmasına dönüşüyor. Diğer kusur, negatif uzunluğu işaretçi aritmetiğine besleyerek kaydedilmiş dönüş adresinin üzerine yazılana kadar geriye doğru ilerliyor. Doğru bellek düzeninde, her ikisi de kontrolü saldırganın sağladığı koda devredebiliyor.