Niet-gepatchte gebreken onthuld in bestandssysteem gebundeld in miljoenen ingebedde apparaten

Beveiligingsbedrijf runZero heeft zeven kwetsbaarheden onthuld in FatFs, een kleine bestandssysteembibliotheek waarmee een apparaat de FAT- en exFAT-formaten kan lezen en schrijven die worden gebruikt op USB-drives en SD-kaarten.

De gebreken zijn belangrijk omdat FatFs bijna overal voorkomen. Het wordt geleverd in de firmware die beveiligingscamera’s, drones, industriële controllers, hardware crypto-wallets en andere apparaten uitvoert die op realtime besturingssystemen zijn gebouwd.

Op de zwaarst getroffen systemen kan een aanvaller die een USB-stick, SD-kaart of updatebestand met een boobytrap op een apparaat krijgt, het geheugen beschadigen en zijn eigen code uitvoeren.

Veel embedded apparaten missen de geheugenbescherming die je op telefoons en desktops wel kunt vinden. Daarom zegt runZero dat “elke fysieke toegang leidt tot een jailbreak.” Een publiekskiosk, een camera met SD-slot, een geldautomaat of een stemautomaat met USB-poort mogen na een moment van fysieke toegang de volledige controle niet uit handen geven, maar hier kan dat wel.

Alle zeven bugs werken op dezelfde basismanier. Het apparaat probeert een opslagvolume of firmware-image te lezen dat opzettelijk verkeerd is ingedeeld, en FatFs verwerkt de slechte gegevens verkeerd. runZero beoordeelde de ingestelde CVSS als Medium tot Hoog, zonder kritieke punten.

De belangrijkste bug is CVE-2026-6682 (CVSS 7.6), een overflow van gehele getallen in de code die een FAT32-volume koppelt. Slechte wiskunde kan een valse bestandsgrootte opleveren, die later door de code wordt behandeld als een echte leeslengte. Op echte hardware kan dit leiden tot geheugenbeschadiging en code-uitvoering.

Hier zijn ze alle zeven, de slechtste eerst volgens de ranglijst van runZero:

  • CVE-2026-6682 (7,6, hoog): FAT32 mount integer overflow, wat leidt tot geheugenbeschadiging en mogelijke code-uitvoering. Bereikbaar via bepaalde firmware-updates, niet alleen via fysieke media.
  • CVE-2026-6687 (7,6, hoog): een exFAT-volumelabelveld overstroomt een kleine buffer, waardoor een aanvaller een schone voet aan de grond krijgt voor geheugencorruptie.
  • CVE-2026-6688 (7,6, hoog): lange bestandsnamen overstromen de wrappercode die veel projecten rondom FatFs plaatsen, zoals een strcpy van fno.fname in een vaste buffer. Moeilijk op te lossen binnen FatFs alleen.
  • CVE-2026-6685 (6.1, gemiddeld): een wiskundige omslag in cacheverwerking op gefragmenteerde volumes die stilletjes gegevens kunnen beschadigen.
  • CVE-2026-6683 (4,6, gemiddeld): een exFAT-deling door nul waardoor het apparaat crasht. In een updatestroom kan het hardware blokkeren. Ook bereikbaar via enkele firmware-updates.
  • CVE-2026-6686 (4,6, gemiddeld): een bestand dat tot het einde is verlengd, kan overgebleven gegevens van eerder verwijderde bestanden lekken.
  • CVE-2026-6684 (4,6, gemiddeld): een verkeerd opgemaakte GPT-partitietabel (de kaart van de schijf) kan het apparaat tijdens het koppelen laten hangen. Het is de enige van de zeven stroomopwaarts vastgelegde, in FatFs R0.16.

Hier is het moeilijkste deel. FatFs wordt onderhouden door één ontwikkelaar in een klein hoekje van het internet, en runZero zegt dat het herhaaldelijk heeft geprobeerd de beheerder te bereiken en via een lus naar het Japanse JPCERT/CC-coördinatiecentrum is gegaan, zonder reactie.

Volgens het account van runZero is er geen upstream oplossing voor de bugs met geheugencorruptie, geen beveiligingsmailinglijst en geen manier voor de vele producten die FatF’s bundelen om erachter te komen dat ze hierdoor getroffen zijn. Updaten helpt bij het vastlopen van de GPT, omdat de huidige release deze blokkeert, maar de rest is aan downstream-leveranciers om zelf te patchen.

runZero noemt de getroffen platforms, waaronder Espressif ESP-IDF, STMicroelectronics STM32Cube, Zephyr, MicroPython, ArduPilot, RT-Thread, Mbed, Samsung TizenRT en de SWUpdate-updater. Dat verschuift het probleem stroomafwaarts naar consumenten-IoT, industriële apparatuur, drones en crypto-wallets.

Vanaf de bekendmaking van runZero op 1 juli waren er geen aanvallen met deze bugs gemeld, en sindsdien zijn er geen meer opgedoken. Maar het exploitmateriaal is al openbaar: runZero heeft proof-of-concept schijfimages, een testharnas en een werkend QEMU-gebaseerd exploitvoorbeeld verzonden in een begeleidende repository.

Als u firmware bouwt die FAT- of exFAT-media raakt, is het advies direct. Zoek de kopie van FatF’s in uw product, controleer de wrappercode eromheen, kijk goed hoe u omgaat met bestandsnamen en bestandsgroottes en plan de patch.

Als u getroffen apparaten gebruikt, behandel dan fysieke poorten en updatekanalen als een aanvalsoppervlak: beperk wie media kan aansluiten en let op firmware-updates van leveranciers.

Waarom dit steeds gebeurt

runZero controleerde FatFs voor het eerst handmatig in 2017 en vond weinig dat de moeite waard was om te rapporteren. Toen het team in maart 2026 terugkeerde, richtte het team zich op een kant-en-klare installatie met dezelfde code: Visual Studio Code, GitHub Copilot in “automatische” modus en een paar duidelijke aanwijzingen.

De LLM heeft een fuzzer gebouwd, een tool die verkeerd opgemaakte gegevens in code invoert totdat er iets kapot gaat. Dat bracht bugs aan het licht die bij de handmatige audit over het hoofd waren gezien en hielp bevestigen dat ze misbruikt konden worden.

Dat past in een groeipatroon. Eind 2024 ontdekte de Big Sleep-agent van Google een echte, exploiteerbare geheugenbug in SQLite die bij gewone fuzzing over het hoofd was gezien.

Vorige maand nog ontdekte een autonome AI-agent 21 geheugenveiligheidsbugs in FFmpeg, een andere wijdverbreide C-bibliotheek. Het punt van runZero is bot: als een grotendeels kant-en-klare AI-pijplijn deze kan vinden, kan iedereen dat ook, dus als je er stilletjes op zit, wordt niemand beschermd.

Het patchprobleem is bekend. runZero verwacht dat downstream-reparaties jaren in plaats van dagen zullen duren, en PixieFail is het precedent: een reeks van negen bugs uit 2024 in de netwerkopstartcode van EDK II, de firmware achter veel pc- en servermerken, die leveranciers traag konden patchen. FatFs heeft dezelfde vorm en een zwakkere oplossingspijplijn, omdat er helemaal geen responsieve upstream is.

Let op twee dingen: of de FatFs-onderhouder weer opduikt met een patch, en hoe de grote platformleveranciers die deze bundelen reageren. Totdat ze dat doen, gaan we ervan uit dat veel verzendapparaten onbetrouwbare opslag lezen met een code waar geen oplossing achter zit.

Thijs Van der Does