
Descrizione della vulnerabilità
Su NgiNginx, quando fastcgi_split_path_info elabora una richiesta contenente %0a, PATH_INFO diventa vuoto a causa del carattere di nuova riga \n. php-fpm, quando gestisce PATH_INFO vuoto, presenta un difetto logico. Un attaccante, attraverso una costruzione e uno sfruttamento accurati, può provocare l'esecuzione remota di codice. Su nx, quando fastcgi_split_path_info elabora una richiesta contenente %0a, PATH_INFO diventa vuoto a causa del carattere di nuova riga \n. php-fpm, quando gestisce PATH_INFO vuoto, presenta un difetto logico. Un attaccante, attraverso una costruzione e uno sfruttamento accurati, può provocare l'esecuzione remota di codice.
Ambito di impatto
I server Nginx + php-fpm, con la seguente configurazione, possono essere vulnerabili all'esecuzione remota di codice.
location ~ [^/].php(/|$) { fastcgi_split_path_info ^(.+?.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_pass php:9000; ... } }
Soluzione
Se non influisce sul normale funzionamento, rimuovere la seguente configurazione dal file di configurazione di Nginx:
fastcgi_split_path_info ^(.+?.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info;
Contiene due exp: uno è in linguaggio Go, l'altro è un exp già compilato.
./phuip-fpizdam http://192.168.93.131:8080/index.php