Před pár dny byly zveřejněny informace o různých zranitelnostech identifikovaných v webové rozhraní "J-Web", které se používá na síťových zařízeních Juniper vybavených operačním systémem Červen.
Nejnebezpečnější je zranitelnost CVE-2022-22241, z nichž toto zejména umožňuje vzdáleně spouštět kód v systému bez ověřování odesláním speciálně vytvořeného požadavku HTTP.
Podstatou chyby zabezpečení je, že cesta k souboru předaná uživatelem je zpracována ve skriptu /jsdm/ajax/logging_browse.php bez filtrování předpony s typem obsahu ve fázi před kontrolou autentizace.
Útočník může přenést škodlivý soubor phar pod maskou obrázku a spustit kód PHP umístěný v souboru phar pomocí metody útoku "Phar Deserialization".
Problém je v tom, že při kontrole nahraného souboru pomocí funkce is_dir(). V PHP tato funkce automaticky deserializuje metadata souboru Phar (soubor PHP) při zpracování cest začínajících na „phar://“. Podobný efekt je patrný při zpracování cest k souborům dodaných uživatelem ve funkcích file_get_contents(), fopen(), file(), file_exists(), md5_file(), filemtime() a fileize().
Útok je komplikován tím, že kromě spuštění provádění souboru phar musí útočník najít způsob, jak jej stáhnout do zařízení (při přístupu k /jsdm/ajax/logging_browse.php může pouze zadat cestu spustit existující soubor).
Z možných scénářů, kdy se soubory dostanou do zařízení, je zmíněno nahrání souboru phar v podobě obrázku prostřednictvím služby přenosu obrázků a nahrazení souboru v mezipaměti webového obsahu.
Další zranitelnost zjištěno je CVE-2022-22242, tuto zranitelnost mohou být zneužity neověřeným vzdáleným útočníkem ke krádeži relací správa JunOS nebo se používá v kombinaci s jinými zranitelnostmi, které vyžadují ověření. Tuto chybu zabezpečení lze například použít ve spojení s chybou zápisu do souboru po ověření, která je součástí zprávy.
CVE-2022-22242 umožňuje náhradu externích parametrů nefiltrovaný na výstupu skriptu error.php, který umožňuje skriptování mezi stránkami a po kliknutí na odkaz spustí libovolný JavaScript kód v prohlížeči uživatele. Tuto chybu zabezpečení lze použít k zachycení parametrů relace správce, pokud se útočníkům podaří přimět správce, aby otevřel speciálně vytvořený odkaz.
Na druhou stranu jsou zmíněny i zranitelnosti CVE-2022-22243, kterou může zneužít ověřený vzdálený útočník k manipulaci s relacemi JunOS admin nebo manipulace se streamem XPATH, který server používá ke komunikaci se svými analyzátory XML, a také СVE-2022-22244, který může být rovněž zneužit ověřeným vzdáleným útočníkem k manipulaci s relacemi správce JunOS. V obou případech umožňuje nahrazení výrazu XPATH prostřednictvím skriptů jsdm/ajax/wizards/setup/setup.php a /modules/monitor/interfaces/interface.php ověřenému uživateli bez oprávnění manipulovat s relacemi správce.
Další zranitelnosti zveřejněny jsou:
- CVE-2022-22245: Pokud není sekvence „..“ ve zpracovaných cestách ve skriptu Upload.php správně vyčištěna, ověřený uživatel může nahrát svůj soubor PHP do adresáře, který umožňuje spuštění skriptu PHP (např. předáním cesty „ název_souboru=\..\..\...\..\www\dir\new\shell.php").
- CVE-2022-22246: Schopnost spustit libovolný lokální soubor PHP manipulací ověřeného uživatele pomocí skriptu jrest.php, kde se k vytvoření názvu souboru načteného funkcí "require_once(")" používají externí parametry. (například „/jrest.php?payload =alol/lol/any\..\..\..\..\any\file“) To útočníkovi umožňuje zahrnout jakýkoli soubor PHP uložený na serveru. Pokud je tato chyba zabezpečení zneužita společně s chybou zabezpečení při nahrávání souborů, může to vést ke vzdálenému spuštění kódu.
Konečně Uživatelům počítačů Juniper se doporučuje nainstalovat aktualizaci firmwaru a pokud to není možné, zajistěte, aby byl přístup k webovému rozhraní blokován z externích sítí a omezen pouze na důvěryhodné hostitele.
Pokud máte zájem dozvědět se o něm více, podrobnosti můžete konzultovat na následující odkaz.