È stato rilasciato urgentemente un aggiornamento per il server web Apache 2.4.50, che risolve una vulnerabilità 0-day (CVE-2021-41773) già attivamente sfruttata, consentendo l'accesso ai file nelle aree al di fuori della directory radice del sito. Grazie a questa vulnerabilità, è possibile caricare file di sistema arbitrari e codici sorgenti di script web accessibili in lettura dall'utente con cui è in esecuzione il server http. Gli sviluppatori sono stati informati del problema il 17 settembre, ma sono riusciti a pubblicare l'aggiornamento solo oggi, dopo che sono stati registrati casi di sfruttamento della vulnerabilità per attaccare i siti.
Il pericolo della vulnerabilità è mitigato dal fatto che il problema si manifesta solo nella recente versione 2.4.49 e non influisce su tutte le versioni precedenti. Nelle branche stabili dei distribuzioni server conservative, la versione 2.4.49 non è stata ancora utilizzata (Debian, RHEL, Ubuntu, SUSE), ma il problema ha colpito distribuzioni continuamente aggiornate, come Fedora, Arch Linux e Gentoo, oltre ai port di FreeBSD.
La vulnerabilità è causata da un errore introdotto durante la revisione del codice per la normalizzazione dei percorsi nell'URI, per cui un punto codificato con la sequenza "" nel percorso non veniva normalizzato se preceduto da un altro punto. In questo modo, è stata resa possibile l'inserimento di caratteri non filtrati "..\/" nel percorso risultante specificando nella richiesta la sequenza ".\/". Ad esempio, una richiesta del tipo "https:\/\/example.com\/cgi-bin\/.\/.\/.\/.\/etc\/passwd" o "https:\/\/example.com\/cgi-bin\/.\/\/\\/\\/etc\/hosts" permetteva di ottenere il contenuto del file "/etc/passwd."
Il problema non si manifesta se l'accesso alle directory è esplicitamente vietato utilizzando l'impostazione "require all denied". Ad esempio, per una protezione parziale, si può indicare nel file di configurazione: require all denied
Nella versione Apache httpd 2.4.50 è stata anche risolta un'altra vulnerabilità (CVE-2021-41524), che colpisce il modulo che implementa il protocollo HTTP\/2. Questa vulnerabilità consentiva di innescare un dereferenziazione di puntatore nullo e causare un crash del processo inviando una richiesta appositamente formattata. Anche questa vulnerabilità si manifesta solo nella versione 2.4.49. Come soluzione alternativa di protezione, è possibile disabilitare il supporto per il protocollo HTTP\/2.
Fonte: opennet.ru
