Un'altra vulnerabilità in Apache httpd consente di accedere oltre la radice del catalogo del sito

È stato trovato un nuovo vettore di attacco per il server http Apache, che è rimasto non corretto nell'aggiornamento 2.4.50 e consente l'accesso ai file da aree al di fuori della radice del sito. Inoltre, i ricercatori hanno scoperto un modo che, in presenza di determinate impostazioni non standard, permette non solo di leggere file di sistema, ma anche di eseguire codice da remoto sul server. Il problema si manifesta solo nelle versioni 2.4.49 e 2.4.50; le versioni precedenti non sono vulnerabili. Per risolvere questa nuova variante di vulnerabilità, è stata rapidamente rilasciata la versione Apache httpd 2.4.51.

In sostanza, il nuovo problema (CVE-2021-42013) è completamente analogo alla vulnerabilità originale (CVE-2021-41773) in 2.4.49, con l'unica differenza di un diverso encoding dei caratteri «..». In particolare, nella versione 2.4.50 è stata bloccata la possibilità di utilizzare la sequenza «» per codificare il punto, ma è stata trascurata la possibilità di doppia codifica — specificando la sequenza «%». server L'ho decodificata in «», e poi in «.», cioè i caratteri «..\/» per passare alla directory precedente potevano essere codificati come «.%\/».

Per quanto riguarda l'esploitazione della vulnerabilità tramite l'esecuzione di codice, ciò è possibile solo se viene attivato mod_cgi e utilizzato un percorso di base in cui è consentita l'esecuzione di script CGI (ad esempio, se è attivata la direttiva ScriptAlias o è impostato il flag ExecCGI nella direttiva Options). Un requisito obbligatorio per il successo dell'attacco è anche la chiara concessione, nelle impostazioni di Apache, dell'accesso alle directory contenenti file eseguibili, come \/bin, oppure l'accesso alla radice del file system «\/». Poiché di solito tale accesso non è concesso, l'attacco tramite esecuzione di codice è poco applicabile ai sistemi reali.

Tuttavia, rimane attuale l'attacco per ottenere il contenuto di file di sistema arbitrari e testi sorgenti di web-script, accessibili in lettura all'utente con cui è stato avviato il server http. Per effettuare tale attacco, è sufficiente avere sul sito una directory configurata tramite le direttive «Alias» o «ScriptAlias» (DocumentRoot non è sufficiente), come ad esempio «cgi-bin».

Esempio di exploit che consente di eseguire l'utilità «id» su server: curl ‘http:\/\/192.168.0.1\/cgi-bin\/.%\/.%\/.%\/.%\/.%\/bin\/sh’ —data ‘echo Content-Type: text\/plain; echo; id’ uid=1(daemon) gid=1(daemon) groups=1(daemon)

Esempio di exploit che consente di visualizzare il contenuto \/etc\/passwd e uno dei web script (per restituire il codice degli script come base, deve essere specificato un catalogo tramite la direttiva «Alias» per il quale non è abilitata l'esecuzione degli script): curl ‘http:\/\/192.168.0.1\/cgi-bin\/.%\/.%\/.%\/.%\/.%\/etc\/passwd’ curl ‘http:\/\/192.168.0.1\/aliaseddir\/.%\/.%\/.%\/.%\/.%\/usr\/local\/apache2\/cgi-bin\/test.cgi’

Il problema riguarda principalmente le distribuzioni aggiornate continuamente, come Fedora, Arch Linux e Gentoo, e anche le porte di FreeBSD. I pacchetti nei rami stabili delle distribuzioni server conservative come Debian, RHEL, Ubuntu e SUSE non sono vulnerabili. Il problema non si manifesta se l'accesso alle directory è esplicitamente negato tramite la configurazione 'require all denied'.

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