O vulnerabilitate în serverul HTTP muhttpd, care oferă acces la fișiere în afara directorului de lucru

O vulnerabilitate (CVE-2022-31793) a fost identificată în serverul HTTP muhttpd, utilizat în principal în routere și puncte de acces, care permite unui atacator neautentificat să încarce fișiere arbitrare prin trimiterea unei cereri HTTP special concepute, în funcție de permisiunile cu care este executat serverul HTTP (în multe dispozitive, muhttpd rulează cu drepturi root). De exemplu, atacatorul poate accesa fișiere cu parole, configurații wireless, setări de conectare la furnizor și chei private.

Problema este cauzată de o eroare în procesarea căii în cerere, care permite accesarea fișierelor din afara directorului rădăcină al serverului web. Atacurile constau în utilizarea unui caracter suplimentar la începutul căii, diferit de punct, slash și întrebare. De exemplu, pentru a încărca fișierul /etc/hosts, este suficient să trimiteți cererea „GET a/etc/hosts” sau „GET a/etc/hosts” (printf „GET b/etc/hosts\n\n” | nc server port).

Motivul acestui comportament este că deschiderea fișierului solicitat se face prin comanda „open(&req->filename[1], O_RDONLY)” cu execuția anterioară a funcției chdir() pentru a merge în rădăcină. servere webIndicația &req->filename[1] duce la ignorarea primului caracter din cale (dezvoltatorii presupuneau că primul caracter este întotdeauna „/”). Astfel, pentru cererea „GET /etc/hosts”, serverul va încerca să deschidă fișierul printr-o cale relativă „etc/hosts”, dar dacă se utilizează un caracter suplimentar la început („GET a/etc/hosts”) — calea ulterioară va fi procesată complet.

Problema există încă din prima versiune a muhttpd și a fost remediată în versiunea 1.1.7. Problema a fost confirmată în routerele SaskTel și Arris care utilizează muhttpd. Potențial, problema poate apărea și în dispozitivele fabricate de AT&T, Frontier și Windstream. Atunci când accesul la portul HTTP este restricționat doar la rețeaua internă, atacul poate fi efectuat dintr-o rețea externă prin tehnica „DNS rebinding”, care permite trimiterea unei cereri HTTP către un port de rețea inaccesibil prin internet atunci când utilizatorul deschide o anumită pagină în browser.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster