FatFs : 7 failles non patchées menacent des millions de systèmes embarqués
Sept failles, une seule bibliothèque, et un impact potentiel énorme. La société runZero a publié le 1er juillet 2026 un rapport à propos de 7 vulnérabilités découvertes dans FatFs, une petite bibliothèque de système de fichiers qui permet de lire et écrire en FAT/exFAT sur clés USB et cartes SD. Le problème : ce code est embarqué partout dans l’univers IoT : caméras de surveillance, drones, contrôleurs industriels, portefeuilles crypto matériels. Quels sont les risques ? Comment se protéger ? Voici l’essentiel à savoir.
Une carte SD piégée et l’appareil tombe
Pour exploiter les 7 vulnérabilités découvertes par runZero, la méthodologie semble identique : l’appareil tente de lire un volume ou une image firmware délibérément malformée, et FatFs va mal gérer la lecture des données corrompues.
Bien qu’il n’y ait pas la moindre faille critique, la plus sérieuse est la CVE-2026-6682 (CVSS 7.6). Elle correspond à un dépassement d’entier dans le code qui monte un volume FAT32 (). Un calcul faussé produit une taille de fichier erronée, que le code suivant traite comme une vraie longueur de lecture, ce qui permet d’aboutir à une corruption mémoire puis à de l’exécution de code. L’exploitation de cette faille peut passer par un stockage USB, une carte SD et même un mécanisme de mise à jour OTA.
Voici les 6 autres failles, classées par ordre de criticité selon runZero :
- CVE-2026-6687 (7.6) : sur un volume exFAT, une étiquette de volume trop longue (autrement dit le nom du support) déborde le tampon censé la stocker lorsque le code la lit (). Cela provoque une corruption mémoire.
- CVE-2026-6688 (7.6) : lorsqu’un support contient un fichier au nom très long (), FatFs renvoie ce nom au programme qui l’utilise. Toutefois, beaucoup de ces programmes le recopient dans une zone mémoire de taille fixe sans vérifier sa longueur : le nom trop long déborde alors cette zone et corrompt la mémoire. Comme le code fautif se trouve dans chaque produit intégrant FatFs, et non dans FatFs lui-même, la faille est difficile à corriger à la source.
- CVE-2026-6685 (6.1) : un débordement arithmétique dans la gestion du cache sur volumes fragmentés, qui peut corrompre silencieusement les données.
- CVE-2026-6683 (4.6) : une division par zéro en exFAT qui fait planter l’appareil. Dans un flux de mise à jour, elle peut “briquer” le matériel. Également atteignable via certaines MAJ OTA.
- CVE-2026-6686 (4.6) : un fichier étendu au-delà de sa fin peut laisser fuiter des données résiduelles de fichiers précédemment supprimés.
- CVE-2026-6684 (4.6) : une table de partitions GPT malformée peut bloquer l’appareil au montage. C’est la seule des sept corrigée en amont, dans FatFs .
runZero avait déjà audité FatFs à la main en 2017, avec un effort de fuzzing de plusieurs jours, sans rien dénicher. En revenant sur le même code en mars 2026, l’équipe de chercheurs est parvenue à identifier ces failles grâce à l’IA. Un socle basé sur Visual Studio Code, GitHub Copilot en mode auto, et quelques prompts basiques a permis d’arriver à ces découvertes. Le modèle a construit tout seul un fuzzer, qui a fait remonter des bugs que l’audit manuel avait manqués, tout en confirmant qu’ils étaient exploitables.
Le premier problème, c’est que cette bibliothèque est très utilisée et que cela représente des millions d’appareils. “L’écosystème concerné comprend plusieurs plateformes majeures non destinées aux amateurs, telles que l’ESP-IDF d’Espressif, le middleware STM32Cube de STMicroelectronics, le système d’exploitation temps réel Zephyr, MicroPython, ArduPilot, RT-Thread, Mbed, TizenRT de Samsung et SWUpdate, avec des applications en aval dans l’IoT grand public, les contrôleurs industriels, les drones, les portefeuilles cryptographiques, etc.”, peut-on lire dans le rapport des chercheurs.
Le second problème, c’est que beaucoup de systèmes embarqués n’ont ni ASLR ni protection mémoire. Ainsi, d’après runZero, le moindre accès physique à un appareil vulnérable mène à un jailbreak. “Par exemple, les caméras de sécurité dotées d’un stockage sur carte SD, les machines à voter équipées de lecteurs de fichiers USB, les distributeurs automatiques de billets, et pratiquement tout autre appareil doté d’un écran que les utilisateurs sont censés toucher.”, peut-on lire.
Un composant partout, un mainteneur injoignable
Le troisième problème, et c’est probablement le plus important : FatFs est développé par un unique développeur qui est injoignable ! runZero affirme avoir tenté à plusieurs reprises de joindre le mainteneur, sans jamais obtenir de réponse.
Résultat : pas de correctif en amont pour les failles de corruption mémoire, pas de liste de diffusion sécurité, et aucun moyen pour les nombreux produits qui embarquent FatFs de savoir qu’ils sont concernés. Ceci signifie que tous les fabricants qui utilisent cette bibliothèque vont devoir travailler sur des correctifs au niveau de leur version locale. De toute façon, il y a des chances pour qu’ils utilisent une version déjà modifiée de cette bibliothèque.
Quoi qu’il en soit, il y a des millions d’appareils vulnérables et il y a fort à parier que la majorité de ces appareils le restera…. Au mieux, cela va prendre des mois… Voilà ce qu’il se passe lorsqu’une petite bibliothèque est utilisée par toute une partie de l’industrie. D’ailleurs, runZero n’a pas hésité à remettre le fameux dessin XKCD pour illustrer cette situation.

À ce jour, aucune attaque exploitant ces vulnérabilités n’a été signalée, mais cela peut évoluer.
Sources :