PHP-Entwickler haben heute um 17:00 Uhr (MSK) die Veröffentlichung von Notfallkorrekturversionen (8.5.12, 8.4.27, 8.3.36 und 8.2.35) angekündigt, in denen zwei kritische Sicherheitsanfälligkeiten behoben werden. Allen Serveradministratoren mit PHP wird geraten, die Patches sofort nach ihrer Veröffentlichung in ihren Systemen zu installieren. Offiziell werden die Einzelheiten erst nach dem Erscheinen der Patches bekannt gegeben, aber laut den öffentlich verfügbaren Informationen handelt es sich um die Sicherheitsanfälligkeiten CVE-2026-109618 und CVE-2026-109619, die potenziell die Möglichkeit bieten, Schadcode auf jedem Webserver auszuführen, der PHP-Skripte mit der Standardkonfiguration verarbeitet. Die Probleme treten in allen Versionen ab PHP 5.4 auf.
Im Internet sind bereits Prototypen für Exploits (1, 2) zur Überprüfung der Anfälligkeit von Systemen aufgetaucht. In den Anmerkungen zum Exploit wird behauptet, dass die Anfälligkeiten durch den Zugriff auf bereits freigegebene Speicherbereiche im Progress-Handler für Datei-Uploads verursacht werden. Server (session.upload_progress). Es ist nicht erforderlich, dass die Website über eine Funktion zum Hochladen von Dateien verfügt, um den Angriff durchzuführen; es genügt ein automatisches Auslösen im PHP-Interpreter des Inhalts-Handlers „multipart/form-data“. Für eine erfolgreiche Ausnutzung ist es erforderlich, die Speicherstrukturbelegung des Prozesses zu bestimmen, die in jeder Version spezifisch ist (das Problem wird im Exploit durch das Durchprobieren von Offsets gelöst, die im Voraus für Pakete aus verschiedenen Distributionen berechnet wurden).
Als Workaround zur Absicherung gibt es Empfehlungen, im php.ini-Parameter „session.upload_progress.enabled = off“ (oder „php_admin_flag[session.upload_progress.enabled] = off“ in PHP-FPM) zu setzen, aber ein Vertreter des PHP-Projekts sowie der Autor des ersten Prototyps des Exploits behaupten, dass dies nicht ausreicht, um beide Sicherheitsanfälligkeiten zu blockieren. In den Anmerkungen zum zweiten Prototyp des Exploits wird erwähnt, dass neben der oben genannten Einstellung in php.ini zur Verhinderung des Angriffs ohne Einsatz eines Patches eine vollständige Blockierung von Anfragen mit dem Content-Type „multipart/form-data“ erforderlich ist, was die Möglichkeit des Datei-Uploads über Webformulare unmöglich macht.
In Apache httpd kann zur Blockierung von multipart-Anfragen die folgende Regel in mod_rewrite verwendet werden:
RewriteCond %{HTTP:Content-Type} multipart [NC]
RewriteRule ^ – [F,L]
Zur Blockierung in nginx:
if ($http_content_type ~* "multipart") {
return 403;
}
Zur Blockierung in Caddy:
@multipart header_regexp Content-Type (?i)multipart
respond @multipart 403
Zusatz: Korrigierte Releases von PHP 8.5.12, 8.4.27, 8.3.36 und 8.2.35 sowie Details zu den behobenen kritischen Sicherheitsanfälligkeiten wurden veröffentlicht. Eine Analyse der Schwachstellen und offiziell empfohlene Umgehungsmethoden wurden in einer separaten Nachricht veröffentlicht.
Quelle: opennet.ru
