Onderzoekers van het firmware-beveiligingsbedrijf Binarly hebben zes nieuwe tekortkomingen ontdekt in U-Boot, het kleine programma dat hardware opstart die zo uiteenlopend is als thuisrouters, slimme camera’s en de beheerchips in datacenterservers.
Vier van de bugs kunnen een apparaat laten crashen. De andere twee kunnen een aanvaller die een kwaadaardig beeld voor de bootloader plaatst, zijn eigen code laten uitvoeren, voordat het apparaat heeft bevestigd dat de software legitiem is.
Dat laatste deel is het punt. Een bootloader draait vóór het besturingssysteem, dus een fout hier kan alles ondermijnen dat daarna wordt geladen. Alle zes bugs worden bereikt terwijl U-Boot nog steeds een niet-vertrouwde afbeelding leest, voordat de handtekening is gecontroleerd.
Wat Binarly heeft gevonden
U-Boot kan een kernel, apparaatboom, ramdisk en andere opstartcomponenten bundelen in één pakket, een FIT (Flattened Image Tree), en het controleert de digitale handtekening van dat pakket voordat het de controle overdraagt.
Binarly ging op zoek naar zwakke plekken in die cheque en vond er zes. Het grootste deel van de kwetsbare code bevindt zich sinds v2013.07 in U-Boot, zegt Binarly, in meer dan 50 stabiele releases, en leeft ook in de vele firmwares van leveranciers die bovenop U-Boot zijn gebouwd.
De bugs worden bijgehouden als binaire adviezen BRLY-2026-037 tot en met BRLY-2026-042. Er zijn nog geen CVE-identificatoren toegewezen. Ze vallen in twee groepen: twee die code kunnen uitvoeren, en vier die alleen maar crashen.
De twee zijn BRLY-2026-037 en BRLY-2026-038, en beide zijn terug te voeren op één niet-gecontroleerde waarde. U-Boot roept fdt_get_name aan, een zoekopdracht in de apparaatboomparseringsbibliotheek die het leent, en op een verkeerd opgemaakt beeld retourneert die zoekopdracht een nulaanwijzer en een negatieve lengte. U-Boot gebruikt beide zonder een van beide te controleren.
Eén bug volgt de nulaanwijzer naar een geheugenkopie die, op apparaten waarop adres nul is toegewezen, een stapelbufferoverloop wordt. De andere voert de negatieve lengte in de pointer-rekenkunde in, die achteruit loopt totdat een opgeslagen retouradres wordt overschreven. In de juiste geheugenindeling kan een van beide de besturing met de hand gebruiken om de door de aanvaller geleverde code te coderen.
De andere vier laten alleen de bootloader crashen. BRLY-2026-039 en BRLY-2026-041 lezen voorbij het einde van de afbeelding door te vertrouwen op een grootte of offset die de aanvaller controleert. BRLY-2026-040 derefereert een nulaanwijzer die een ouder beeldformaat ongecontroleerd teruggeeft. BRLY-2026-042 put de stapel uit, veroorzaakt door een diep geneste afbeelding die een vroege validatiestap aanstuurt om zichzelf aan te roepen totdat deze op is.
Binarly publiceerde voor elke fout een proof-of-concept-afbeelding en reproductiestappen en demonstreerde deze aan de hand van standaard U-Boot-builds. Er is geen uitbuiting bij echte aanvallen gemeld.
Van de zes zijn het de twee geheugenbeschadigende bugs die prioriteit moeten krijgen: een crash kan een apparaat offline halen, maar het uitvoeren van code bij het opstarten kan de hele vertrouwensketen ondermijnen.
Hoe erg wordt het
In het ergste geval betekent het herstellen van een apparaat dat niet wil opstarten fysieke toegang en het opnieuw flashen van de geheugenchip met een schone image. Het uitvoeren van code is erger. Code die zo vroeg wordt uitgevoerd, bevindt zich onder het besturingssysteem, waar gewone beveiligingstools deze mogelijk niet zien.
De valkuil voor een aanvaller is de bezorging: deze bugs worden pas actief als een kwaadaardig beeld het opstartpad bereikt, waarvoor meestal fysieke toegang of een geprivilegieerde voet aan de grond nodig is. Die steun is niet altijd lokaal.
In eerder werk aan Supermicro’s serverbeheercontrollers toonde dezelfde Binarly-onderzoeker aan dat een aanvaller met externe toegang tot de beheerinterface het eigen updateproces van het apparaat kon misbruiken om een kwaadaardig beeld te flashen, zonder de hardware aan te raken.
Wat te doen
Er is nog geen stabiele release met de oplossing, dus leveranciers en beheerders van op U-Boot gebaseerde producten moeten niet wachten: haal nu de upstream-oplossingen op, volg de commit-links in elk Binarly-advies en volg ze op advies-ID, aangezien er geen CVE’s bestaan.
U-Boot heeft de zes patches in juni samengevoegd, maar de release van juli (v2026.07) was in april al bevroren, dus deze werd zonder deze verzonden; de volgende release, v2026.10, verschijnt pas in oktober.
Alle anderen gebruiken een apparaat dat iemand anders op U-Boot heeft gebouwd. Voor hen moet de oplossing als een firmware-update van de productleverancier aankomen. Dat is waar je op moet letten.
Deze exacte controle is eerder mislukt. Dezelfde kenmerkende logica werd maanden eerder getroffen door CVE-2026-33243, die door U-Boot in april werd gepatcht; de gerelateerde barebox-bootloader, die dezelfde afbeeldingstools gebruikt, werd ook getroffen.
In die bug was een eigenschap alleen bedoeld om op te sommen wat de handtekeningomslagen waren, maar was zelf niet ondertekend, zodat een gemanipuleerde afbeelding delen kon verwisselen die nooit waren geverifieerd. De helper achter de twee ergste bugs hier, fdt_get_name, komt van libfdt, de afgeplatte apparaatboombibliotheek die U-Boot deelt met de Linux-kernel, barebox en anderen. Dezelfde ongecontroleerde retourfout kan overal opduiken waar code wordt gebruikt.
LogoFAIL, dat THN in 2023 behandelde, was een reeks bugs bij het parseren van afbeeldingen in pc-firmware waardoor aanvallerscode kon worden uitgevoerd tijdens het opstarten, voordat Secure Boot iets kon controleren, bij bijna elk groot pc-merk. De handtekening krijgt alle aandacht; de insecten blijven landen in de leidingen die ervoor lopen.
En zoals BootHole in 2020 liet zien, toen een fout in de bootloader Secure Boot in het hele ecosysteem kapot maakte, was het schrijven van de patch het makkelijke gedeelte. Het langzame deel is om het op de miljoenen apparaten te krijgen waarop het exemplaar van U-Boot van iemand anders draait.