Eine Schwachstelle in PHP, die die AusfĂŒhrung von Code im CGI-Modus ermöglicht.

In PHP wurde eine Schwachstelle (CVE-2024-4577) entdeckt, die die AusfĂŒhrung eigenen Codes auf dem Server oder die Einsicht in den Quellcode von PHP-Skripten ermöglicht, wenn PHP im CGI-Modus auf der Windows-Plattform verwendet wird (Konfigurationen mit mod_php, php-fpm und FastCGI sind nicht betroffen). Das Problem wurde in den Versionen PHP 8.3.8, 8.2.20 und 8.1.29 behoben.

Die Schwachstelle ist ein Sonderfall eines Problems, das 2012 behoben wurde (CVE-2012-1823), und der Schutz, der zu diesem Zweck hinzugefĂŒgt wurde, war nicht ausreichend, um einen Angriff auf der Windows-Plattform zu verhindern. Die Angriffsart besteht darin, das Argument der Befehlszeile beim Start des PHP-Interpreters durch Manipulation von Anfrageparametern an ein PHP-Skript einzuschleusen.

Bei der alten SicherheitsanfĂ€lligkeit CVE-2012-1823 reichte es aus, die Befehlszeilenoptionen anstelle von Anfrageparametern anzugeben, beispielsweise „http://localhost/index.php?-s“, um den Quellcode des Skripts anzuzeigen. Die neue SicherheitsanfĂ€lligkeit basiert darauf, dass die Windows-Plattform eine automatische Umwandlung von Zeichen vornimmt, was es ermöglicht, Zeichen anzugeben, die in bestimmten Kodierungen vorhanden sind und durch das Zeichen „-“ ersetzt werden (zum Beispiel http://localhost/index.php?s).

Die Schwachstelle wurde in Konfigurationen mit Lokalisierungen fĂŒr Traditionelles Chinesisch (cp950), Vereinfachtes Chinesisch (cp936) und Japanisch (cp932) bestĂ€tigt, jedoch ist ihr Auftreten auch bei anderen Lokalisierungen nicht ausgeschlossen. Das Problem tritt in der Standardkonfiguration des XAMPP-Pakets (Apache + MariaDB + PHP + Perl) sowie in allen Apache-Konfigurationen auf, in denen php-cgi als Handler fĂŒr CGI-Skripte ĂŒber die Konfiguration eingestellt ist.
‘Action cgi-script «/cgi-bin/php-cgi.exe»‘ oder ‘Action application/x-httpd-php-cgi «/php-cgi/php-cgi.exe»‘, oder beim direkten Platzieren des PHP-Interpreters in «/cgi-bin» sowie in allen anderen Verzeichnissen, in denen die AusfĂŒhrung von CGI-Skripten ĂŒber die Direktive ScriptAlias erlaubt ist.

DarĂŒber hinaus wurden in den Updates PHP 8.3.8, 8.2.20 und 8.1.29 noch drei weitere Schwachstellen behoben:

  • CVE-2024-5458 — die Möglichkeit, einen Filter zu umgehen
    FILTER_VALIDATE_URL, der bei der Verwendung der Funktion filter_var aufgerufen wird.
  • CVE-2024-5585 — ein alternativer Angriffsvektor auf die Schwachstelle CVE-2024-1874, der es ermöglicht, den zuvor hinzugefĂŒgten Schutz zu umgehen und beim Aufruf von bat- und cmd-Dateien ĂŒber die Funktion proc_open auf der Windows-Plattform Befehle einzuschleusen (Schwachstelle BatBadBut).
  • Die Funktion openssl_private_decrypt ist anfĂ€llig fĂŒr Angriffe von Marvin.

Quelle: opennet.ru

60GB SSD 8Gb DDR4