Nog 'n kwesbaarheid in Apache httpd wat toegang buite die werf se wortelgids moontlik maak

'n Nuwe aanvalvektor is op die Apache http-bediener gevind, wat in opdatering 2.4.50 nie opgepas is nie en toegang tot lêers vanaf gebiede buite die werf se wortelgids moontlik maak. Daarbenewens het navorsers 'n manier gevind wat dit moontlik maak om, in die teenwoordigheid van sekere nie-standaard instellings, nie net stelsellêers te lees nie, maar ook om jou kode op 'n afstand op die bediener uit te voer. Die probleem verskyn slegs in vrystellings 2.4.49 en 2.4.50, vroeëre weergawes van die kwesbaarheid word nie geraak nie. Apache httpd 2.4.51 is vinnig vrygestel om die nuwe kwesbaarheidsvariant aan te spreek.

In sy kern is die nuwe probleem (CVE-2021-42013) heeltemal soortgelyk aan die oorspronklike kwesbaarheid (CVE-2021-41773) in 2.4.49, die verskil is slegs in 'n ander karakterkodering ".." In die besonder, in vrystelling 2.4.50, is die moontlikheid om die volgorde "%2e" te gebruik om 'n punt te enkodeer geblokkeer, maar die moontlikheid van dubbelkodering is gemis - wanneer die volgorde "%%32%65" gespesifiseer is, het die bediener gedekodeer dit in "%2e", en dan in " .", d.w.s. die karakters "../" om na die vorige gids te gaan, kan geënkodeer word as ".%%32%65/".

Wat die uitbuiting van die kwesbaarheid deur kode-uitvoering betref, is dit moontlik wanneer mod_cgi geaktiveer is en die basispad gebruik word, waarin die uitvoering van CGI-skripte toegelaat word (byvoorbeeld as die ScriptAlias-aanwysing geaktiveer is of die ExecCGI-vlag word gespesifiseer in die Opsies-richtlijn). 'n Verpligte vereiste vir 'n suksesvolle aanval is ook om eksplisiet toegang te verleen tot gidse met uitvoerbare lêers, soos /bin, of toegang tot die lêerstelsel se wortel "/" in die Apache-instellings. Aangesien sulke toegang gewoonlik nie verleen word nie, is die kode-uitvoeringsaanval van min nut vir werklike stelsels.

Terselfdertyd bly die aanval op die verkryging van die inhoud van arbitrêre stelsellêers en brontekste van webskripte, beskikbaar vir lees deur die gebruiker waaronder die http-bediener loop, relevant. Om so 'n aanval uit te voer, is dit genoeg om 'n gids op die webwerf te hê wat gekonfigureer word deur die "Alias" of "ScriptAlias" riglyne (DocumentRoot is nie genoeg nie), soos "cgi-bin".

'n Voorbeeld van 'n uitbuiting wat jou toelaat om die "id"-nutsding op die bediener uit te voer: curl 'http://192.168.0.1/cgi-bin/.%%32%65/.%%32%65/.%% 32%65/.%% 32%65/.%%32%65/bin/sh' --data 'echo Content-Type: text/plain; eggo; id' uid=1(daemon) gid=1(daemon) group=1(daemon)

'n Voorbeeld van uitbuitings wat jou toelaat om die inhoud van /etc/passwd en een van die webskripte te vertoon (om die script-kode terug te gee, moet die gids wat deur die "Alias"-direktief gedefinieer is, waarvoor scriptuitvoering nie geaktiveer is nie, gespesifiseer word as die basisgids): krul 'http://192.168.0.1 .32/cgi-bin/.%%65%32/.%%65%32/.%%65%32/.%%65%32/.% %65%192.168.0.1/etc/passwd' krul 'http: //32/aliaseddir/.%%65%32/.%%65%32/.%%65%32/.%%65%32/. %%65%2/usr/local/apacheXNUMX/cgi -bin/test.cgi'

Die probleem raak hoofsaaklik voortdurend bygewerkte verspreidings soos Fedora, Arch Linux en Gentoo, sowel as poorte van FreeBSD. Pakkette in die stabiele takke van die konserwatiewe Debian-, RHEL-, Ubuntu- en SUSE-bedienerverspreidings word nie geraak nie. Die probleem verskyn nie as toegang tot gidse uitdruklik geweier word deur die "vereis alles geweier"-instelling.

Bron: opennet.ru

Voeg 'n opmerking