Zranitelnost v PHP, která umožňuje vykonat kód při práci v režimu CGI

V PHP byla zjištěna zranitelnost (CVE-2024-4577), která umožňuje provést vlastní kód na serveru nebo zobrazit zdrojový kód PHP skriptu, pokud je PHP používáno v režimu CGI na platformě Windows (konfigurace s mod_php, php-fpm a FastCGI zranitelnosti nejsou vystaveny). Problém byl odstraněn ve verzích PHP 8.3.8, 8.2.20 a 8.1.29.

Zranitelnost je speciálním případem v roce 2012 opraveného problému CVE-2012-1823, pro který se ukázalo, že ochrana je nedostatečná pro zablokování útoku na platformě Windows. Metoda útoku spočívá v možnosti zasunutí argumentu příkazového řádku při spuštění interpretu PHP manipulací s parametry požadavku na PHP skript.

Ve staré zranitelnosti CVE-2012-1823 stačilo pro exploitaci zadat možnosti příkazového řádku místo parametrů dotazu, například „http://localhost/index.php?-s“ pro zobrazení zdrojového kódu skriptu. Nová zranitelnost vychází z toho, že platforma Windows automaticky převádí znaky, což umožňuje obcházení dříve přidané ochrany zadáváním znaků, které se nacházejí v některých kódováních a které jsou nahrazovány znakem „-“ (například http://localhost/index.php?s).

Zranitelnost byla potvrzena v konfiguracích s lokalizacemi pro tradiční čínštinu (cp950), zjednodušenou čínštinu (cp936) a japonštinu (cp932), ale není vyloučeno její projevení i s jinými lokalizacemi. Problém se projevuje v konfiguraci výchozí sady XAMPP (Apache + MariaDB + PHP + Perl) a také v jakýchkoli konfiguracích Apache, v nichž je php-cgi nastaven jako zpracovatel CGI skriptů pomocí nastavení
‘Action cgi-script „/cgi-bin/php-cgi.exe“‘ nebo ‘Action application/x-httpd-php-cgi „/php-cgi/php-cgi.exe“‘, nebo při přímém umístění interpretru php do „/cgi-bin“ a jakýchkoli jiných adresářů, kde je povoleno provádění CGI skriptů prostřednictvím direktivy ScriptAlias.

Kromě toho byly v aktualizacích PHP 8.3.8, 8.2.20 a 8.1.29 odstraněny další tři zranitelnosti:

  • CVE-2024-5458 — možnost obcházení filtru
    FILTER_VALIDATE_URL, který se používá při volání funkce filter_var.
  • CVE-2024-5585 — alternativní vektor útoku na zranitelnost CVE-2024-1874, který umožňuje obcházet dříve přidanou ochranu a provádět zasazení příkazů při volání bat- a cmd-souborů prostřednictvím funkce proc_open na platformě Windows (zranitelnost BatBadBut).
  • Náchylnost funkce openssl_private_decrypt k útoku Marvin.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster