Dobësi në paketën node-netmask NPM e përdorur në 270 mijë projekte

Paketa Node-netmask NPM, e cila ka rreth 3 milion shkarkime në javë dhe përdoret si varësi nga më shumë se 270 mijë projekte në GitHub, ka një cenueshmëri (CVE-2021-28918) që e lejon atë të anashkalojë kontrollet që përdorin maskën e rrjetit. për të përcaktuar ndodhjen për të adresuar vargjet ose për filtrim. Problemi është rregulluar në lëshimin e node-netmask 2.0.0.

Dobësia bën të mundur trajtimin e një adrese IP të jashtme si një adresë nga rrjeti i brendshëm dhe anasjelltas, dhe me një logjikë të caktuar të përdorimit të modulit node-netmask në aplikacion për të kryer SSRF (Falsifikim i kërkesës nga ana e serverit), RFI. (Përfshirja e skedarëve në distancë) dhe sulmet LFI (Përfshirja e skedarit lokal) ) për të hyrë në burimet në rrjetin e brendshëm dhe për të përfshirë skedarët e jashtëm ose lokalë në zinxhirin e ekzekutimit. Problemi është se sipas specifikimit, vlerat e vargut të adresave që fillojnë me një zero duhet të interpretohen si numra oktalë, por moduli i nyjeve-netmask nuk e merr parasysh këtë dhe i trajton ato si numra dhjetorë.

Për shembull, një sulmues mund të kërkojë një burim lokal duke specifikuar vlerën "0177.0.0.1", e cila korrespondon me "127.0.0.1", por moduli "node-netmask" do të heqë nullin dhe do ta trajtojë 0177.0.0.1" si " 177.0.0.1", i cili në aplikacion gjatë vlerësimit të rregullave të aksesit nuk do të jetë e mundur të përcaktohet identiteti me "127.0.0.1". Në mënyrë të ngjashme, një sulmues mund të specifikojë adresën "0127.0.0.1", e cila duhet të jetë identike me "87.0.0.1", por do të trajtohet si "127.0.0.1" në modulin "node-netmask". Në mënyrë të ngjashme, ju mund të anashkaloni kontrollin për qasje në adresat e intranetit duke specifikuar vlera si "012.0.0.1" (ekuivalente me "10.0.0.1", por do të përpunohet si 12.0.0.1 gjatë kontrollit).

Studiuesit që identifikuan problemin e quajnë problemin katastrofik dhe ofrojnë disa skenarë sulmi, por shumica e tyre duken spekulative. Për shembull, ai flet për mundësinë e sulmit të një aplikacioni të bazuar në Node.js që krijon lidhje të jashtme për të kërkuar një burim bazuar në parametrat ose të dhënat e kërkesës hyrëse, por aplikacioni nuk është emërtuar apo detajuar në mënyrë specifike. Edhe nëse gjeni aplikacione që ngarkojnë burime bazuar në adresat IP të futura, nuk është plotësisht e qartë se si mund të shfrytëzohet dobësia në praktikë pa u lidhur me një rrjet lokal ose pa fituar kontrollin e adresave IP "pasqyrë".

Studiuesit supozojnë vetëm se pronarët e 87.0.0.1 (Telecom Italia) dhe 0177.0.0.1 (Brasil Telecom) janë në gjendje të anashkalojnë kufizimin e aksesit në 127.0.0.1. Një skenar më realist është shfrytëzimi i dobësisë për të anashkaluar listat e ndryshme të bllokut nga ana e aplikacionit. Çështja mund të zbatohet gjithashtu për ndarjen e përkufizimit të intervaleve të intranetit në modulin NPM "private-ip".

Burimi: opennet.ru

Shto një koment