Un'altra vulnerabilità in Apache httpd che consente l'accesso all'esterno della directory principale del sito

È stato trovato un nuovo vettore di attacco per il server http Apache, che non è stato corretto nell'aggiornamento 2.4.50 e consente l'accesso ai file da aree esterne alla directory principale del sito. Inoltre, i ricercatori hanno trovato un metodo che consente, in presenza di determinate impostazioni non standard, non solo di leggere i file di sistema, ma anche di eseguire in remoto il loro codice sul server. Il problema si presenta solo nelle versioni 2.4.49 e 2.4.50; le versioni precedenti non sono interessate. Per eliminare la nuova vulnerabilità è stato rapidamente rilasciato Apache httpd 2.4.51.

Fondamentalmente, il nuovo problema (CVE-2021-42013) è completamente simile alla vulnerabilità originale (CVE-2021-41773) nella 2.4.49, l'unica differenza è una diversa codifica dei caratteri "..". In particolare, nella versione 2.4.50 era bloccata la possibilità di utilizzare la sequenza "%2e" per codificare un punto, ma mancava la possibilità di doppia codifica: quando si specificava la sequenza "%%32%65", il server la decodificava in "%2e" e poi in " .", cioè i caratteri "../" per passare alla directory precedente potrebbero essere codificati come ".%%32%65/".

Per quanto riguarda lo sfruttamento della vulnerabilità tramite l'esecuzione di codice, questo è possibile quando mod_cgi è abilitato e viene utilizzato il percorso base in cui è consentita l'esecuzione di script CGI (ad esempio, se è abilitata la direttiva ScriptAlias ​​o è specificato il flag ExecCGI nel file direttiva sulle opzioni). Un requisito obbligatorio per un attacco riuscito è anche fornire esplicitamente l'accesso alle directory con file eseguibili, come /bin, o l'accesso alla radice del file system "/" nelle impostazioni di Apache. Poiché in genere tale accesso non viene concesso, gli attacchi basati sull'esecuzione di codice hanno scarsa applicazione nei sistemi reali.

Allo stesso tempo rimane rilevante l'attacco volto a ottenere il contenuto di file di sistema arbitrari e testi sorgente di script web leggibili dall'utente sotto i quali funziona il server http. Per effettuare un simile attacco è sufficiente avere sul sito una directory configurata utilizzando le direttive “Alias” o “ScriptAlias” (DocumentRoot non è sufficiente), ad esempio “cgi-bin”.

Un esempio di exploit che consente di eseguire l'utilità “id” sul server: curl 'http://192.168.0.1/cgi-bin/.%%32%65/.%%32%65/.%% 32%65/.%% 32%65/.%%32%65/bin/sh' —data 'echo Tipo di contenuto: testo/semplice; eco; id' uid=1(demone) gid=1(demone) gruppi=1(demone)

Un esempio di exploit che permette di visualizzare il contenuto di /etc/passwd e uno degli script web (per produrre il codice dello script è necessario specificare la directory definita tramite la direttiva “Alias”, per la quale non è abilitata l'esecuzione dello script come directory di base): curl 'http://192.168.0.1 .32/cgi-bin/.%%65%32/.%%65%32/.%%65%32/.%%65%32/.% %65%192.168.0.1/etc/passwd' curl 'http: //32/aliaseddir/.%%65%32/.%%65%32/.%%65%32/.%%65%32/. %%65%2/usr/local/apacheXNUMX/cgi -bin/test.cgi'

Il problema riguarda soprattutto le distribuzioni in continuo aggiornamento come Fedora, Arch Linux e Gentoo, nonché i port di FreeBSD. I pacchetti nei rami stabili delle distribuzioni server conservatrici Debian, RHEL, Ubuntu e SUSE non sono interessati dalla vulnerabilità. Il problema non si verifica se l'accesso alle directory viene negato esplicitamente utilizzando l'impostazione "richiedi tutto negato".

Fonte: opennet.ru

Aggiungi un commento