Një dobësi në paketën NPM node-netmask, e cila përdoret në 270 mijë projekte

Në paketën NPM node-netmask, e cila ka rreth 3 milion shkarkime në javë dhe përdoret si varësi nga mbi 270 mijë projekte në GitHub, u zbulua një vulnerabilitet (CVE-2021-28918), i cili lejon bypass-in e kontrollimeve ku maska rrjetore përdoret për të përcaktuar përfshirjen në diapazonet e adresave ose për filtrimin. Problemi është zgjidhur në lëshimin 2.0.0 të node-netmask.

Vulnerabiliteti lejon trajtimin e një adrese IP të jashtme si një adresë nga rrjeti i brendshëm dhe anasjelltas, dhe me logjikën e caktuar të përdorimit të modulit node-netmask në aplikacion mund të ndodhin sulme SSRF (Server-side request forgery), RFI (Remote File Inclusion) dhe LFI (Local File Inclusion) për të aksesuar burime brenda rrjetit të brendshëm dhe për të përfshirë në zinxhirin e ekzekutimit skedarë të jashtëm ose lokalë. Problemi qëndron në faktin se, sipas specifikimeve, vlerat string të adresave që fillojnë me zero duhet të interpretohen si numra oktalë, por moduli 'node-netmask' nuk e merr parasysh këtë veçori dhe i trajton ato si numra dekimalë.

Për shembull, një sulmues mund të kërkojë një burim lokal duke treguar vlerën '0177.0.0.1', e cila korrespondon me '127.0.0.1', por moduli 'node-netmask' do ta heqë zero-n dhe do ta trajtojë '0177.0.0.1' si '177.0.0.1', që në aplikacion, gjatë vlerësimit të rregullave të aksesit, nuk do të lejojë të përcaktohet barazimi me '127.0.0.1'. Po ashtu, një sulmues mund të tregojë adresën '0127.0.0.1', e cila duhet të jetë identike me '87.0.0.1', por në modulit 'node-netmask' do të trajtohet si '127.0.0.1'. Në mënyrë të ngjashme, mund të mashtrohet kontrolli i adresave intranet duke treguar vlera si '012.0.0.1' (ekvivalente me '10.0.0.1', por gjatë kontrollit do të trajtohet si '12.0.0.1').

Kërkuesit që zbuluan problemin e quajnë atë katastrofik dhe ofrojnë disa skenarë sulmesh, por shumica e tyre duken më shumë si teorikë. Për shembull, flitet për mundësinë e sulmit ndaj një aplikacioni të bazuar në Node.js, i cili krijon lidhje të jashtme për të kërkuar burime mbi bazën e parametrave ose të dhënave të kërkesës hyrëse, por aplikacioni specifik nuk përmendet dhe nuk jepet asnjë detaj. Edhe nëse do të gjendeshin aplikacione që realizojnë ngarkimin e burimeve në bazë të të dhënave të futur, IP-adresatnuk është krejt e qartë si mund të zbatohet vulnerabiliteti në praktikë pa u lidhur me një rrjet lokal ose pa fituar kontroll mbi adresat IP 'mirror'.

Kërkuesit vetëm supozojnë se pronarët e 87.0.0.1 (Telecom Italia) dhe 0177.0.0.1 (Brasil Telecom) kanë mundësinë për të anashkaluar kufizimin e aksesit në 127.0.0.1. Një skenar më realistik është përdorimi i dobësisë për të anashkaluar lista të ndryshme bllokimi, të implementuara nga ana e aplikacionit. Problemi gjithashtu mund të aplikohet për ndarjen e përcaktimit të gamave intranet në modulin NPM "private-ip".

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster