Přeskočit na obsah
Bezpečnost 2 min čtení

Záznam CVE popsal chybu FaceFusionu až dva měsíce po její opravě

FaceFusion do verze 3.6.1 skládal cestu k souboru úlohy přímo z názvu, který přijalo rozhraní Gradio bez přihlášení. Cizí klient tak mohl zapsat JSON mimo pracovní adresář. Verze 3.7.0 přidala kontrolu 30. června, ale CVE-2026-84702 vyšlo až 2. září a poznámky k vydání bezpečnostní změnu neuvádějí.

Barevně označená klávesnice pro střih videa vedle zvukové pracovní stanice
Barevně označená klávesnice pro střih videa. FaceFusion upravuje tváře ve snímcích a videu, ilustrační fotografie ale nezobrazuje jeho rozhraní. Foto: Ben2742, Wikimedia Commons (CC0)

FaceFusion je nástroj na výměnu a další úpravy tváří ve snímcích a videu. Práci si ukládá jako úlohy v souborech JSON. Do verze 3.6.1 odvozoval jméno každého takového souboru přímo z identifikátoru, který mu poslal uživatel.

Nově zveřejněný záznam CVE-2026-84702 popisuje důsledek: podstrčený identifikátor mohl obsahovat části cesty a zápis pak skončil mimo adresář úloh. Útočník tím nezískal možnost uložit libovolný program. Zapisoval platný JSON, jeho obsah však mohl ovlivnit dalšími kroky úlohy. Dosáhl přitom kamkoli, kam směl zapisovat proces FaceFusionu.

Jméno souboru bylo zároveň cestou

Původní funkce get_job_file_name() dělala jedinou věc: připojila k identifikátoru příponu .json. Nadřazená funkce pak výsledek spojila s adresářem a stavem úlohy. Oddělovače adresářů ani části cesty mířící o úroveň výš nikdo neodmítl.

Nezávislý nálezce George Chen ve svém technickém zápisu popisuje i cestu od webového formuláře k zápisu. Rozhraní postavené na Gradiu předávalo hodnotu z textového pole rovnou správci úloh. Příkazová řádka přitom stejný identifikátor kontrolovala už tehdy. Ochrana tedy existovala, jen ne na společné hranici, kterou používají oba vstupy.

Oprava ve verzi 3.7.0 přesunula kontrolu do funkce, která tvoří jméno souboru. Běžný alfanumerický identifikátor a spojovníky nechá beze změny. Jakmile narazí na jiný znak, nahradí celý řetězec otiskem SHA-1. Výsledek už neobsahuje oddělovač adresářů, takže z vyhrazené složky neuteče.

Bez hesla neznamená automaticky z internetu

Záznam CVE hodnotí útok jako síťový, bez oprávnění a bez součinnosti uživatele. To odpovídá instanci, jejíž webové rozhraní je dostupné z cizího počítače. Výchozí spuštění FaceFusionu však síťový dosah omezuje víc, než z krátkého popisu CVE vypadá.

Čtyři rozvržení rozhraní ve verzi 3.6.1 volají launch() bez parametru auth, ale také bez server_name. Gradio 5.44.1 v takovém případě používá 127.0.0.1. Na celou místní síť se rozhraní otevře až hodnotou 0.0.0.0 nebo proměnnou GRADIO_SERVER_NAME. Chyba je tedy vzdáleně dosažitelná u instalací vystavených přes síť, proxy či změněné nastavení, ne u každého výchozího spuštění na jednom počítači.

Oprava byla veřejná, její účel ne

Časová osa má dvě různé prodlevy. Chen uvádí, že chybu ohlásil projektu 2. června 2026 a projekt ji tentýž den přijal. Opravný kód se objevil v obřím souhrnném commitu pro vydání 3.7.0. GitHub datuje commit i vydání 30. červnem. Chenův zápis mluví o 27. červnu; veřejná data projektu tedy jeho datum nepotvrzují.

Poznámky k vydání 3.7.0 jmenují výkon CoreML, nový režim výběru tváře, změny instalátoru i odstraněný limit operační paměti. Kontrola identifikátoru úlohy v nich není. Správce, který četl jen poznámky, tak neměl důvod chápat přechod z 3.6.1 jako bezpečnostní aktualizaci.

Veřejný záznam CVE nese datum 2. září, tedy 64 dní po vydání opravy. Mezitím vyšly verze 3.7.1, 3.8.0, 3.8.1, 3.8.2 a 1. září také 3.8.3. Kdo používá některou z nich, opravu už má. Dotčené jsou podle záznamu všechny verze před 3.7.0.

Prodleva sama neznamená, že oprava chyběla. Znamená něco praktičtějšího: databáze zranitelností dva měsíce nevarovala a poznámky k vydání účel změny zamlčely. Bez porovnání kódu nebylo z veřejných materiálů projektu poznat, že aktualizace zavírá cestu k zápisu souborů mimo pracovní adresář.

Zdroje

Diskuse

Zatím tu nikdo nediskutuje. Můžete být první.

Napsat příspěvek

Diskutovat můžete i bez účtu. S registrací se ale příspěvek zveřejní hned a nemusíte pokaždé vyplňovat jméno. Účet už máte? Přihlaste se.

Nezveřejňujeme ho, slouží jen redakci.

Podporuje zápis Texy: **tučně**, *kurzíva*, odrážky, odkazy.

Dál k tématu

  1. Bezpečnost

    Codex spouštěl program z nastavení cizího repozitáře mimo vlastní sandbox

    OpenAI zveřejnila 1. září 2026 čtyři záznamy CVE ke svému agentnímu nástroji Codex. Tři z nich stojí na témže předpokladu: repozitář si s sebou nese vlastní soubor .git…

  2. Bezpečnost

    MLflow ve verzích 2.1.0 až 3.14.x ignoroval zákaz pickle u modelů statsmodels

    Bezpečnostní volba v MLflow měla zastavit načítání modelů uložených pomocí pickle, integrace statsmodels ji ale nekontrolovala. Upravený modelový artefakt proto mohl při…

  3. Bezpečnost

    Knihovna ash_ai spouštěla text promptu jako zdrojový kód Elixiru

    Šest záznamů CVE zveřejněných 31. srpna míří na jedinou knihovnu: rozšíření ash_ai, které do elixirového frameworku Ash přidává práci s jazykovými modely. Nejzávažnější…

  4. Bezpečnost

    Browser-use web-ui ukládá klíče k modelům do nešifrovaných souborů

    Záznam CVE-2026-82640 zveřejněný 30. srpna popisuje, jak browser-use web-ui ukládá klíče k modelům do souborů JSON v čitelné podobě. Týká se vydání 2.0.0 až 3.0.0 a…