Den Attack ass méiglech an nginx Konfiguratiounen, an deenen d'Forwarding op PHP-FPM duerchgefouert gëtt andeems Deeler vun der URL mat "fastcgi_split_path_info" trennt ginn an d'PATH_INFO Ëmfeldvariabel definéiert, awer ouni d'éischt d'Existenz vun der Datei mat der "try_files $fastcgi_script_name" ze kontrolléieren. Direktiv oder den "if (!-f $) document_root$fastcgi_script_name)". De Problem ass och
Location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^ (. +? \. php) (/.*) $;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php:9000;
}
Dir kënnt d'Léisung vum Problem an Verdeelungskits op dëse Säiten verfollegen:
try_files $fastcgi_script_name =404;
De Problem gëtt duerch e Feeler verursaacht wann Dir Pointer an enger Datei manipuléiert
Wann d'Fastcgi_split_path_info Direktiv spezifizéiert d'Spaltung vum Skriptwee mat engem newline-sensiblen regulären Ausdrock (zum Beispill vill Beispiller proposéieren "^(.+?\.php)(/.*)$") ze benotzen, da kéint en Ugräifer suergen, datt eng eidel Wäert gëtt op d'PATH_INFO Ëmfeld Variabel geschriwwe. An dësem Fall, weider laanscht d'Ausféierung
Andeems Dir eng URL op eng gewësse Manéier formatéiert hutt, kann en Ugräifer eng Verréckelung vum path_info Pointer op den éischte Byte vun der "_fcgi_data_seg" Struktur erreechen, an en Null op dësen Byte schreiwen féiert zu der Bewegung vum "char* pos" Zeigefanger zu engem virdrun lokal Erënnerung Beräich. Déi nächst genannt FCGI_PUTENV wäert d'Donnéeën an dëser Erënnerung iwwerschreiwe mat engem Wäert deen den Ugräifer kontrolléiere kann. De spezifizéierte Gedächtnis späichert och d'Wäerter vun anere FastCGI Variablen, a andeems se hir Donnéeën schreiwen, kann en Ugräifer eng fiktiv PHP_VALUE Variabel erstellen an d'Ausféierung vun hirem Code erreechen.
Source: opennet.ru