Napad na NPM koji vam omogućava da utvrdite prisustvo paketa u privatnim spremištima

U NPM-u je identifikovana greška koja vam omogućava da utvrdite postojanje paketa u privatnim spremištima. Problem je uzrokovan različitim vremenima odgovora kada se zahtijeva postojeći i nepostojeći paket od strane korisnika treće strane koji nema pristup spremištu. Ako nema pristupa za bilo koji paket u privatnim repozitorijumima, server registry.npmjs.org vraća grešku sa kodom "404", ali ako paket sa traženim imenom postoji, greška se izdaje sa primetnim zakašnjenjem. Napadač može koristiti ovu funkciju za utvrđivanje prisutnosti paketa tražeći nazive paketa iz rječnika.

Određivanje imena paketa u privatnim spremištima može biti potrebno za izvođenje napada miješanja ovisnosti koji manipuliše sjecištem imena zavisnosti u javnim i internim spremištima. Znajući koji interni NPM paketi se nalaze u korporativnim repozitorijumima, napadač može staviti pakete sa istim imenima i novijim brojevima verzija u javno NPM spremište. Ako, prilikom izgradnje, interne biblioteke nisu eksplicitno povezane u postavkama sa svojim spremištem, npm menadžer paketa će smatrati javno spremište prioritetnim i preuzeti paket koji je pripremio napadač.

GitHub je obaviješten o problemu u martu, ali je odbio da doda zaštitu od napada, navodeći arhitektonska ograničenja. Kompanijama koje koriste privatna spremišta savjetuje se da povremeno provjeravaju da li se imena preklapaju u javnom spremištu ili da kreiraju stubove u njihovo ime s imenima koja dupliraju nazive paketa u privatnim spremištima tako da napadači ne mogu smjestiti svoje pakete s imenima koji se preklapaju.

izvor: opennet.ru

Dodajte komentar