Red Hot Cyber

Sicurezza informatica, cybercrime, hack
news, e altro ancora
  • English

Un bug su PHP consente di aggirare i filtri di dominio ed eseguire attacchi DoS

Un ricercatore di sicurezza ha scoperto che un bug in una delle funzioni di PHP ha permesso di aggirare le misure di sicurezza per proteggere le applicazioni Web dagli input dannosi degli utenti.

filter_var() è una funzione popolare che consente agli sviluppatori di disinfettare e convalidare le stringhe per diversi formati di dati come indirizzi e-mail, domini Web e URL.

Tuttavia, secondo il risultato del ricercatore di sicurezza Jordy Zomer, la funzione presentava un difetto che, quando attivato, faceva sì che il programma aggirasse la logica di filtraggio.

Interi con segno e senza segno

filter_var() accetta una stringa di input e un argomento numerico che determina la lunghezza della stringa. La firma della funzione ha definito l’argomento lunghezza come un ‘intero con segno’, che divide l’intervallo della variabile tra valori negativi e positivi.

Advertisements

Tuttavia, un’altra variabile di lunghezza dichiarata all’interno del corpo della funzione è stata definita come un intero senza segno, che accetta solo valori positivi. La mancata corrispondenza tra le dichiarazioni firmate e non firmate possono causare un comportamento irregolare quando alla funzione vengono fornite stringhe molto grandi, il flusso del programma salta oltre il ramo delle istruzioni che applicano i filtri sulle stringhe. ( FILTER_VALIDATE_DOMAIN e FILTER_FLAG_HOSTNAME ).

Il bug potrebbe anche essere utilizzato per organizzare attacchi denial-of-service (DoS) contro server Web PHP con dati leggermente superiori a 2 GB.

Impatto limitato

Il difetto di bypass del filtro viene attivato solo su input utente molto grandi, il che impone severe restrizioni al suo sfruttamento.

“È improbabile che questo bug abbia un impatto ampio, a causa del fatto che questo bug influenza solo una specifica sotto-funzione (vale a dire, il filtraggio dei nomi di dominio) e richiede la fornitura di una dimensione variabile di oltre 4 GB per attivarlo”

ha dichiarato Stanislav Malyshev, sviluppatore di PHP.

Advertisements

“Qualsiasi applicazione PHP configurata correttamente dovrebbe avere limiti di memoria e controlli di input che non consentano 4 GB di dati di input per i nomi di dominio, per il semplice motivo che non ci sono dati legittimi che potrebbero avere nomi di dominio da 4 GB”.