Vulnerability in PHP allowing code execution in CGI mode

W PHP zidentyfikowano lukę (CVE-2024-4577), która umożliwia wykonanie własnego kodu na serwerze lub przeglądanie kodu źródłowego skryptu PHP w przypadku używania PHP w trybie CGI na platformie Windows (konfiguracje z mod_php, php-fpm i FastCGI nie są podatne na tę lukę). Problem został rozwiązany w wersjach PHP 8.3.8, 8.2.20 i 8.1.29.

Luka jest szczególnym przypadkiem naprawionej w 2012 roku luki CVE-2012-1823, dla której nie wystarczyło wprowadzenie dodatkowej ochrony w celu zablokowania ataku na platformie Windows. Metoda ataku polega na możliwości podstawienia argumentu wiersza poleceń podczas uruchamiania interpreter PHP poprzez manipulację parametrami zapytania do skryptu PHP.

W starej luce CVE-2012-1823 wystarczyło podać opcje wiersza poleceń zamiast parametrów zapytania, na przykład „http://localhost/index.php?-s” aby wyświetlić kod źródłowy skryptu. Nowa luka opiera się na tym, że system Windows automatycznie przekształca znaki, co pozwala, w celu obejścia wcześniej dodanej ochrony, używać znaków obecnych w niektórych kodowaniach, które są zamieniane na znak „-” (na przykład http://localhost/index.php?s).

Luka została potwierdzona w konfiguracjach z lokalizacjami dla tradycyjnego chińskiego (cp950), uproszczonego chińskiego (cp936) i japońskiego (cp932), ale nie wyklucza się również jej wystąpienia w innych lokalizacjach. Problem pojawia się w konfiguracji domyślnej zestawu XAMPP (Apache + MariaDB + PHP + Perl), a także w dowolnych konfiguracjach Apache, w których php-cgi jest ustawione jako handler skryptów CGI poprzez konfigurację ‘Action cgi-script "/cgi-bin/php-cgi.exe"’ lub ‘Action application/x-httpd-php-cgi "/php-cgi/php-cgi.exe"’, lub przy bezpośrednim umieszczeniu interpretera PHP w "/cgi-bin" i innych katalogach, w których dozwolone jest wykonywanie skryptów CGI poprzez dyrektywę ScriptAlias.
Dodatkowo w aktualizacjach PHP 8.3.8, 8.2.20 i 8.1.29 usunięto jeszcze trzy luki:

CVE-2024-5458 — możliwość obejścia filtru FILTER_VALIDATE_URL, używanego podczas wywoływania funkcji filter_var.

  • CVE-2024-5585 — alternatywny wektor ataku na lukę CVE-2024-1874, umożliwiający ominięcie wcześniej wprowadzonej ochrony i dokonanie podstawienia komend podczas wywoływania plików bat i cmd poprzez funkcję proc_open na platformie Windows (luka BatBadBut).
    Podatność funkcji openssl_private_decrypt na atak Marvin.
  • Podatność funkcji openssl_private_decrypt na atak Marvin.
  • Podatność funkcji openssl_private_decrypt na atak Marvin.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster