Vulnerabilità in PHP che consente di eseguire codice quando si opera in modalità CGI

È stata identificata una vulnerabilità in PHP (CVE-2024-4577) che consente di eseguire codice arbitrario sul server o di visualizzare il codice sorgente dello script PHP nel caso in cui PHP venga utilizzato in modalità CGI su piattaforme Windows (configurazioni con mod_php, php-fpm e FastCGI non sono colpite da questa vulnerabilità). Il problema è stato risolto nelle release PHP 8.3.8, 8.2.20 e 8.1.29.

La vulnerabilità è un caso specifico del problema correttamente risolto nel 2012, CVE-2012-1823, per il quale la protezione si è rivelata insufficiente per fermare l'attacco su piattaforme Windows. Il metodo di attacco consiste nella possibilità di sostituire l'argomento della riga di comando durante l'avvio dell'interprete PHP mediante la manipolazione dei parametri della richiesta allo script PHP.

Nella vecchia vulnerabilità CVE-2012-1823, per sfruttarla bastava specificare le opzioni della riga di comando invece dei parametri della richiesta, per esempio, ‘http://localhost/index.php?-s’ per mostrare il codice sorgente dello script. La nuova vulnerabilità si basa sul fatto che la piattaforma Windows esegue la conversione automatica dei caratteri, permettendo di bypassare la protezione precedentemente aggiunta, specificando caratteri presenti in alcuni codifiche e sostituiti dal simbolo ‘-’ (ad esempio, http://localhost/index.php?s).

La vulnerabilità è confermata in configurazioni con localizzazioni per il cinese tradizionale (cp950), cinese semplificato (cp936) e giapponese (cp932), ma non si esclude che possa manifestarsi anche con altre localizzazioni. Il problema si presenta nella configurazione predefinita nel pacchetto XAMPP (Apache + MariaDB + PHP + Perl), così come in qualsiasi configurazione Apache in cui php-cgi è impostato come gestore di script CGI tramite la configurazione ‘Action cgi-script “/cgi-bin/php-cgi.exe”’ oppure ‘Action application/x-httpd-php-cgi “/php-cgi/php-cgi.exe”’, o dopo il posizionamento diretto dell'interprete php in ‘/cgi-bin’ e in altre directory in cui è consentita l'esecuzione di script CGI tramite la direttiva ScriptAlias.
Inoltre, negli aggiornamenti PHP 8.3.8, 8.2.20 e 8.1.29 sono state corrette altre tre vulnerabilità:

CVE-2024-5458 — possibilità di bypassare il filtro

  • FILTER_VALIDATE_URL, utilizzato durante la chiamata della funzione filter_var.
    CVE-2024-5585 — un vettore di attacco alternativo alla vulnerabilità CVE-2024-1874, che consente di eludere la protezione precedentemente aggiunta e di effettuare sostituzioni di comandi durante la chiamata a file bat e cmd tramite la funzione proc_open su piattaforme Windows (vulnerabilità BatBadBut).
  • Vulnerabilità della funzione openssl_private_decrypt all'attacco Marvin.
  • Подверженность функции openssl_private_decrypt атаке Marvin.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster