Novinky

Sedm zranitelností v knihovně FatFs ohrožuje miliony vestavěných zařízení

Novinky Date: Zobrazení: 5

Sedm zranitelností v knihovně FatFs ohrožuje miliony vestavěných zařízení

Bezpečnostní firma runZero zveřejnila sedm chyb v malé souborové knihovně FatFs, kterou používají bezpečnostní kamery, drony, průmyslové řídicí jednotky i hardwarové kryptopeněženky, a pro většinu z nich zatím neexistuje oficiální oprava.

Knihovna FatFs umožňuje zařízením postaveným na operačních systémech reálného času číst a zapisovat souborové systémy FAT a exFAT používané na USB discích a SD kartách. Právě proto, že je knihovna součástí firmwaru nesčetného množství vestavěných zařízení, jsou nalezené chyby závažné: útočník, kterému se podaří vsunout do zařízení upravený USB disk, SD kartu nebo aktualizační soubor, může na nejhůře zabezpečených systémech poškodit paměť a spustit vlastní kód. Mnoho vestavěných zařízení přitom postrádá ochrany paměti běžné u telefonů a počítačů, takže podle runZero „jakýkoli fyzický přístup vede k prolomení zařízení" – veřejný kiosek, kamera se slotem na SD kartu, bankomat nebo volební zařízení s USB portem by po chvilce fyzického přístupu neměly předat plnou kontrolu, ale v tomto případě to možné je.

Všech sedm chyb funguje na stejném principu: zařízení se pokusí přečíst záměrně poškozený svazek úložiště nebo obraz firmwaru a knihovna FatFs poškozená data nesprávně zpracuje. runZero ohodnotila sadu jako středně až vysoce závažnou, žádná z chyb nedosáhla nejvyššího stupně závažnosti. Nejzávažnější z nich, CVE-2026-6682 se skóre CVSS 7,6, je celočíselné přetečení v kódu, který připojuje svazek FAT32; chybný výpočet může vytvořit falešnou velikost souboru, kterou následný kód považuje za skutečnou délku pro čtení, což se na reálném hardwaru může projevit jako poškození paměti a spuštění cizího kódu. Další chyby zahrnují přetečení bufferu v poli popisku svazku exFAT, přetečení bufferu při zpracování dlouhých názvů souborů v obalovém kódu kolem FatFs, poškození dat při zpracování keše na fragmentovaných svazcích, pád zařízení při dělení nulou ve formátu exFAT, únik zbytkových dat z dříve smazaných souborů a zaseknutí zařízení při připojování poškozené tabulky oddílů GPT – jako jediná z uvedených chyb byla tato oprava zahrnuta přímo do aktuální verze FatFs R0.16.

Image

Podle runZero knihovnu FatFs udržuje jeden vývojář, kterého se firma opakovaně pokoušela kontaktovat a do komunikace zapojila i japonské koordinační centrum JPCERT/CC, bez odezvy. Pro chyby způsobující poškození paměti tak zatím neexistuje oficiální oprava, knihovna nemá bezpečnostní e-mailovou konferenci a výrobci, kteří FatFs do svých produktů zabudovávají, nemají jak se o zranitelnosti dozvědět. Mezi ovlivněné platformy patří Espressif ESP-IDF, STMicroelectronics STM32Cube, Zephyr, MicroPython, ArduPilot, RT-Thread, Mbed, Samsung TizenRT nebo aktualizační nástroj SWUpdate, což problém posouvá do spotřební elektroniky, průmyslových zařízení, dronů i kryptopeněženek.

Ke dni zveřejnění 1. července nezaznamenala runZero žádné útoky zneužívající tyto chyby, exploit ale už je veřejně dostupný – firma zveřejnila proof-of-concept obrazy disků, testovací nástroj i funkční ukázku exploitu založenou na QEMU. Výrobcům firmwaru, kteří FatFs používají, runZero doporučuje dohledat verzi knihovny ve vlastním produktu, prověřit obalový kód kolem zpracování názvů a velikostí souborů a připravit vlastní opravu; provozovatelům zařízení pak omezit fyzický přístup k portům a sledovat aktualizace firmwaru od výrobců.

Zajímavé je i to, jak k nálezu došlo: po ruční kontrole v roce 2017, která tehdy nic zásadního neodhalila, tým letos v březnu nasměroval na stejný kód běžně dostupnou sestavu Visual Studio Code s GitHub Copilotem v autonomním režimu, který si sám vytvořil fuzzer a odhalil chyby, jež ruční audit přehlédl. Podobný postup nedávno odhalil bezpečnostní chybu v SQLite pomocí nástroje Big Sleep od Googlu i 21 chyb paměťové bezpečnosti v knihovně FFmpeg.

Další články