Дослідники з компанії з безпеки runZero оприлюднили деталі про сім критичних вразливостей у FatFs — популярній та легкій бібліотеці файлової системи з відкритим кодом. Ця бібліотека розроблена спеціально для вбудованих мікроконтролерів і дозволяє пристроям читати та записувати дані на носії форматів FAT і exFAT, такі як USB-накопичувачі та SD-карти.

Проблема є надзвичайно масштабованою, оскільки FatFs є фактично галузевим стандартом де-факто для розробників мікроконтролерів. Вона інтегрована у прошивки мільйонів споживчих, промислових та критично важливих пристроїв по всьому світу: від камер відеоспостереження, дронів, автомобільних систем та медичного обладнання до індустріальних програмованих логічних контролерів (ПЛК) і навіть апаратних криптогаманців.

Технічні деталі знайдених уразливостей

Серед виявлених дефектів найнебезпечнішими є помилки переповнення буфера (heap buffer overflow) та цілочисельного переповнення (integer overflow). Вони виникають під час парсингу пошкоджених або спеціально модифікованих файлових систем FAT/exFAT.

Головні технічні вектори атак включають:

  • Недостатня перевірка розмірів секторів: При підключенні накопичувача бібліотека зчитує службові структури FAT (такі як завантажувальний сектор Boot Record). Якщо зловмисник запише туди аномальні значення розмірів секторів або кластерів, логіка виділення пам'яті FatFs дає збій, що призводить до перезапису пам'яті поза межами виділеного буфера.
  • Вразливості при обробці довгих імен файлів (LFN): Частина знайдених багів пов'язана з кодуванням та конвертацією імен файлів Unicode/UTF-8. Зловмисно сформоване довге ім'я файлу на флешці може викликати відмову в обслуговуванні (DoS) або потенційне виконання коду у контексті прошивки.
  • Відсутність апаратної ізоляції пам'яті (MPU/MMU): Оскільки FatFs працює всередині мікроконтролерів (часто на «голому залізі» bare-metal або під управлінням простих RTOS на кшталт FreeRTOS), у цих системах зазвичай немає сучасних засобів захисту пам'яті (ASLR, DEP). Будь-яке переповнення буфера майже гарантовано веде до повного компрометування пристрою або його миттєвого зависання.

Атака реалізується шляхом фізичного підключення інфікованої SD-карти чи USB-накопичувача до цільового пристрою або через експлуатацію інтерфейсів, які записують отримані по мережі файли на локальне сховище FAT (наприклад, збереження записів з IP-камери на вбудовану SD-карту). На момент публікації офіційних патчів від розробника оригінального коду FatFs ще немає, що робить ці діри вразливостями нульового дня (0-day).

Що це означає на практиці

Для організацій та фахівців з кібербезпеки поява таких уразливостей у базових бібліотеках вимагає негайного перегляду моделі загроз для вбудованих систем:

  • Проведіть аудит використання компонентів: Перевірте специфікації (Software Bill of Materials — SBOM) ваших IoT-пристроїв, мережевих камер та ПЛК на предмет використання бібліотеки FatFs. Особливу увагу зверніть на пристрої, які мають фізично доступні USB-порти або слоти для карт пам'яті.
  • Обмежте фізичний доступ: Заблокуйте або фізично опломбуйте невикористовувані інтерфейси розширення пам'яті (SD, MicroSD, USB) на промисловому та мережевому обладнанні, що розташоване у публічних зонах або слабко контрольованих приміщеннях.
  • Ізолюйте критичні пристрої у мережі: Оскільки експлуатація може призвести до повної відмови обладнання (DoS), переконайтеся, що всі камери спостереження та промислові контролери ізольовані в окремих VLAN без прямого доступу до корпоративної мережі та Інтернету.
  • Контролюйте оновлення прошивок: Слідкуйте за випуском оновлень безпеки від вендорів вашого обладнання. Оскільки FatFs інтегрується безпосередньо у код прошивки, усунути проблему самостійно кінцевому користувачу неможливо — потрібно чекати на офіційний патч від виробника конкретного девайса та негайно інсталювати його після виходу.