270 mila proiektutan erabilitako node-netmask NPM paketean ahultasuna

Node-netmask NPM paketeak, astean 3 milioi deskarga inguru dituena eta GitHub-en 270 mila proiektu baino gehiagoren menpekotasun gisa erabiltzen dena, ahultasun bat du (CVE-2021-28918) sare-maskara erabiltzen duten egiaztapenak saihesteko aukera ematen duena. barrutiak zuzentzeko edo iragazteko agerraldia zehazteko. Arazoa node-netmask 2.0.0 bertsioan konpondu da.

Zaurgarritasunari esker, kanpoko IP helbide bat barne sareko helbide gisa tratatzea eta alderantziz, eta aplikazioan nodo-sare-maskara modulua erabiltzearen logika jakin batekin SSRF (Server-side request forgery), RFI egiteko. (Urruneko Fitxategien Inklusioa) eta LFI (Fitxategi Tokiko Inklusioa) erasoak) barne sareko baliabideetara sartzeko eta kanpoko edo tokiko fitxategiak exekuzio-katean sartzeko. Arazoa da zehaztapenaren arabera, zero batekin hasten diren helbide-kateen balioak zenbaki octal gisa interpretatu behar direla, baina nodo-sare-maskara moduluak ez du hori kontuan hartzen eta zenbaki hamartar gisa hartzen ditu.

Adibidez, erasotzaileak tokiko baliabide bat eska dezake "0177.0.0.1" balioa zehaztuz, "127.0.0.1"-ri dagokiona, baina "node-netmask" moduluak nulua baztertuko du eta 0177.0.0.1" gisa tratatuko du. 177.0.0.1", zeina aplikazioan sarbide-arauak ebaluatzeko orduan, ezin izango da zehaztu identitatea "127.0.0.1". Era berean, erasotzaileak "0127.0.0.1" helbidea zehaztu dezake, "87.0.0.1"-ren berdina izan behar duena, baina "127.0.0.1" gisa tratatuko da "nodo-sare-maskara" moduluan. Era berean, intraneteko helbideetarako sarbidearen egiaztapena iruzurra egin dezakezu "012.0.0.1" bezalako balioak zehaztuz ("10.0.0.1"-ren baliokidea, baina 12.0.0.1 gisa prozesatuko da egiaztapenean).

Arazoa identifikatu duten ikertzaileek arazoa hondamenditzat jotzen dute eta hainbat eraso-eszenatoki eskaintzen dituzte, baina gehienek espekulatzaileak dirudite. Adibidez, sarrera-eskaeraren parametro edo datuetan oinarrituta baliabide bat eskatzeko kanpoko konexioak ezartzen dituen Node.js-en oinarritutako aplikazio bati erasotzeko aukeraz hitz egiten du, baina aplikazioa ez da berariaz izendatzen edo xehatuta. Sartutako IP helbideetan oinarritutako baliabideak kargatzen dituzten aplikazioak aurkitzen badituzu ere, ez dago guztiz argi nola ustiatu daitekeen ahultasuna praktikan sare lokal batera konektatu gabe edo "ispilu" IP helbideen kontrola lortu gabe.

Ikertzaileek soilik suposatzen dute 87.0.0.1 (Telecom Italia) eta 0177.0.0.1 (Brasil Telecom) jabeek 127.0.0.1rako sarbide-murriztapena gainditzeko gai direla. Eszenatoki errealistagoa da ahultasuna ustiatzea aplikazioen alboko bloke-zerrenda desberdinak saihesteko. Arazoa "private-ip" NPM moduluan intranet barrutien definizioa partekatzeko ere aplika daiteke.

Iturria: opennet.ru

Gehitu iruzkin berria