Фирмата за сигурност runZero разкри седем уязвимости във FatFs – малка библиотека за файлови системи, която позволява на устройствата да четат и записват FAT и exFAT форматите, използвани в USB устройства и SD карти.
Тези пропуски са от голямо значение, тъй като FatFs се среща почти навсякъде. Тя се доставя вградена във фърмуера на охранителни камери, дронове, индустриални контролери, хардуерни крипто портфейли и други устройства, базирани на операционни системи в реално време.
При най-засегнатите системи атакуващ, който успее да вкара компрометирано USB устройство, SD карта или файл за актуализация в дадено устройство, може да повреди паметта му и да изпълни собствен код.
Много вградени устройства нямат защити на паметта, каквито се срещат в телефоните и компютрите, поради което от runZero посочват, че „всеки физически достъп води до джейлбрейк“. Публичен павилион, камера със слот за SD карта, банкомат или машина за гласуване с USB порт не би трябвало да предоставят пълен контрол след момент на физически достъп, но в този случай това е възможно.
Всичките седем грешки работят по един и същ основен начин. Устройството се опитва да прочете носител за съхранение или изображение на фърмуер, които са умишлено деформирани, а FatFs не успява да обработи правилно лошите данни. runZero оценява набора от уязвимости като Medium (среден) до High (висок) по скалата CVSS, без критични (Critical).
Основната уязвимост е CVE-2026-6682 (CVSS 7.6) – препълване на цяло число (integer overflow) в кода, който монтира FAT32 дял. Грешните изчисления могат да генерират фалшив размер на файла, който по-късният код третира като реален размер за четене. На реален хардуер това може да доведе до повреда на паметта и изпълнение на код.
Ето и седемте уязвимости, подредени по степен на опасност според класацията на runZero:
- CVE-2026-6682 (7.6, High): Препълване на цяло число при монтиране на FAT32, водещо до повреда на паметта и възможно изпълнение на код. Достъпно и чрез някои актуализации на фърмуера, не само чрез физически носители.
- CVE-2026-6687 (7.6, High): Полето за етикет на exFAT том препълва малък буфер, давайки на атакуващия лесна отправна точка за компрометиране на паметта.
- CVE-2026-6688 (7.6, High): Дългите имена на файлове препълват обвиващия код (wrapper code), който много проекти поставят около FatFs (например strcpy на fno.fname във фиксиран буфер). Трудно за коригиране само в рамките на FatFs.
- CVE-2026-6685 (6.1, Medium): Математическо превъртане (wrap) при обработката на кеша на фрагментирани томове, което може тихо да повреди данни.
- CVE-2026-6683 (4.6, Medium): Деление на нула при exFAT, което срива устройството. При процес на актуализация това може да повреди необратимо (brick) хардуера. Също така достъпно чрез някои фърмуерни актуализации.
- CVE-2026-6686 (4.6, Medium): Файл, разширен извън края си, може да изтекът остатъчни данни от предишно изтрити файлове.
- CVE-2026-6684 (4.6, Medium): Невалидна GPT таблица на разделяне (картата на диска) може да блокира устройството по време на монтиране. Това е единственият от седемте проблема, коригиран в официалния код на FatFs R0.16.
Основният проблем е, че FatFs се поддържа от един-единствен разработчик в малък ъгъл на интернет, а от runZero споделят, че многократно са се опитвали да се свържат с него, включително чрез координационния център JPCERT/CC в Япония, но без резултат.
Според runZero няма официална корекция за уязвимостите, свързани с повреда на паметта, липсва списък с имейли за сигурност и няма начин многото продукти, които внедряват FatFs, да научат, че са засегнати. Актуализирането помага само за проблема с блокирането на GPT, тъй като текущата версия го спира, но останалите корекции остават отговорност на крайните производители.
runZero посочва засегнати платформи, сред които Espressif ESP-IDF, STMicroelectronics STM32Cube, Zephyr, MicroPython, ArduPilot, RT-Thread, Mbed, Samsung TizenRT и SWUpdate. Това прехвърля проблема по веригата към потребителския IoT сектор, индустриалното оборудване, дроновете и крипто портфейлите.
Към момента на оповестяването на 1 юли от runZero не са докладвани атаки, използващи тези грешки, и такива не са се появили и до днес. Информацията за експлоатация обаче вече е публична: runZero предостави тестови дискови изображения, тестова среда и работещ пример за експлоатация, базиран на QEMU, в съпътстващо хранилище.
Ако разработвате фърмуер, който работи с FAT или exFAT медии, съветът е директен: намерете копието на FatFs във вашия продукт, одитирайте обвиващия код около него, проверете внимателно как обработвате имената и размерите на файловете и планирайте пач.
Ако използвате засегнати устройства, третирайте физическите портове и каналите за актуализация като повърхност за атака: ограничете кой може да включва носители и следете за актуализации на фърмуера от производителя.
За първи път runZero одитира ръчно FatFs през 2017 г. и открива малко неща за докладване. Връщайки се към кода през март 2026 г., екипът насочва стандартен готов инструмент към същия код: Visual Studio Code, GitHub Copilot в автоматичен режим и няколко лесни текстови подкани.
Изкуственият интелект е изградил fuzzer – инструмент, който подава деформирани данни в кода, докато нещо не се счупи. Това е изкарало наяве грешки, които ръчният одит е пропуснал, и е помогнало да се потвърди, че са експлоатируеми.
Това се вписва в нарастваща тенденция. В края на 2024 г. AI агентът Big Sleep на Google откри реална, експлоатируема грешка в паметта на SQLite, която обикновеното тестване беше пропуснало.
Само миналия месец автономен AI агент откри 21 грешки в безопасността на паметта във FFmpeg – друга широко вграждана C библиотека. Изводът на runZero е категоричен: щом готов AI инструмент може да открие тези пропуски, всеки друг също може, така че мълчанието не защитава никого.