Nekateri strežniki z nginxom ostajajo ranljivi za tehniko Nginx Alias Traversal, ki je bila predlagana na konferenci Blackhat leta 2018 in omogoča dostop do datotek in imenikov, ki se nahajajo zunaj korenskega imenika, določenega v direktivi "alias". Težava se pojavi le v konfiguracijah z direktivo "alias" znotraj bloka "location", katere parameter se ne konča z znakom "/", medtem ko se "alias" konča z "/".
Bistvo problema je v tem, da se datoteke za bloke z direktivo vzdevka podajo tako, da se pripne zahtevana pot, potem ko se le-ta uskladi z masko iz direktive lokacije in izreže del poti, ki je navedena v tej maski. Za primer ranljive konfiguracije, prikazane zgoraj, lahko napadalec zahteva datoteko "/img../test.txt" in ta zahteva se bo ujemala z masko, navedeno na lokaciji "/img", po kateri bo preostali rep "../test.txt" pritrjen na pot iz direktive vzdevka "/var/images/" in posledično bo zahtevana datoteka "/var/images/../test.txt". Tako lahko napadalci dostopajo do katere koli datoteke v imeniku »/var« in ne le do datotek v »/var/images/«, na primer, za prenos dnevnika nginx lahko pošljete zahtevo »/img../log/nginx/access.log«.
V konfiguracijah, v katerih se vrednost direktive vzdevka ne konča z znakom "/" (na primer "alias /var/images;"), napadalec ne more preklopiti v nadrejeni imenik, lahko pa zahteva drug imenik v /var, katerega ime se začne s tistim, določenim v konfiguraciji. Na primer, z zahtevo "/img.old/test.txt" lahko dostopate do imenika "var/images.old/test.txt".
Analiza repozitorijev na GitHubu je pokazala, da se napake v konfiguraciji nginx, ki vodijo do težave, še vedno najdejo v realnih projektih. Na primer, prisotnost težave je bila zaznana v ozadju upravitelja gesel Bitwarden in jo je bilo mogoče uporabiti za dostop do vseh datotek v imeniku /etc/bitwarden (zahteve za /attachments so bile izdane iz /etc/bitwarden/attachments/), vključno s tam shranjeno bazo podatkov z gesli »vault.db«, potrdilom in dnevniki, za katere je bilo dovolj poslati zahteve »/attachments../vault.db«, »/attachments. ./identity.pfx", "/atta chments../logs/api.log" itd.
Metoda je delovala tudi z Google HPC Toolkit, kjer so bile /statične zahteve preusmerjene v imenik »../hpc-toolkit/community/front-end/website/static/«. Za pridobitev baze podatkov z zasebnim ključem in poverilnicami lahko napadalec pošlje poizvedbi "/static../.secret_key" in "/static../db.sqlite3".
Vir: opennet.ru