Vundebleco en la nodo-retmasko NPM-pakaĵo uzata en 270 mil projektoj

La node-netmask NPM-pakaĵo, kiu havas ĉirkaŭ 3 milionojn da elŝutoj semajne kaj estas uzata kiel dependeco de pli ol 270 mil projektoj en GitHub, havas vundeblecon (CVE-2021-28918), kiu permesas preterpasi ĉekojn kiuj uzas la retan maskon. por determini la okazon por trakti intervalojn aŭ por filtrado. La problemo estas riparita en la eldono de node-netmask 2.0.0.

La vundebleco ebligas trakti eksteran IP-adreson kiel adreson de la interna reto kaj inverse, kaj kun certa logiko uzi la modulon de nodo-retmasko en la aplikaĵo por efektivigi SSRF (Server-flanka peto-falsado), RFI. (Malproksima Dosiera Inkludo) kaj LFI (Loka Dosiera Inkludo) atakoj) por aliri rimedojn en la interna reto kaj inkludi eksterajn aŭ lokajn dosierojn en la ekzekutĉeno. La problemo estas, ke laŭ la specifo, adresŝnuroj komenciĝantaj per nulo devas esti interpretitaj kiel oktalaj nombroj, sed la nodo-retmasko-modulo ne konsideras tion kaj traktas ilin kiel dekumajn nombrojn.

Ekzemple, atakanto povus peti lokan rimedon specifante la valoron "0177.0.0.1", kiu respondas al "127.0.0.1", sed la modulo "node-netmask" forĵetos la nulon, kaj traktos 0177.0.0.1″ kiel " 177.0.0.1", kiu en la aplikaĵo dum taksado de alirreguloj, ne eblos determini identecon kun "127.0.0.1". Simile, atakanto povas specifi la adreson "0127.0.0.1", kiu devus esti identa al "87.0.0.1", sed estos traktata kiel "127.0.0.1" en la modulo "nodo-retmasko". Simile, vi povas trompi la ĉekon por aliro al intraretaj adresoj specifante valorojn kiel "012.0.0.1" (ekvivalenta al "10.0.0.1", sed estos procesita kiel 12.0.0.1 dum kontrolo).

La esploristoj, kiuj identigis la problemon, nomas la problemon katastrofa kaj disponigas plurajn atakscenarojn, sed la plej multaj el ili aspektas konjektemaj. Ekzemple, ĝi parolas pri la ebleco ataki aplikaĵon bazitan sur Node.js, kiu establas eksterajn konektojn por peti rimedon bazitan sur la parametroj aŭ datumoj de la eniga peto, sed la aplikaĵo ne estas specife nomita aŭ detala. Eĉ se vi trovas aplikojn, kiuj ŝarĝas rimedojn surbaze de la enigitaj IP-adresoj, ne estas tute klare, kiel la vundebleco povas esti ekspluatata praktike sen konektiĝi al loka reto aŭ sen akiri kontrolon de "spegulaj" IP-adresoj.

La esploristoj nur supozas, ke posedantoj de 87.0.0.1 (Telecom Italia) kaj 0177.0.0.1 (Brasil Telecom) povas preteriri la alirlimigon al 127.0.0.1. Pli realisma scenaro estas ekspluati la vundeblecon por preteriri diversajn aplik-flankajn bloklistojn. La afero ankaŭ povas esti aplikita al dividado de la difino de intraretaj gamoj en la NPM-modulo "private-ip".

fonto: opennet.ru

Aldoni komenton