Vulnerabilità in u pacchettu node-netmask NPM utilizatu in 270 mila prughjetti

U pacchettu node-netmask NPM, chì hà circa 3 milioni di scaricamentu à settimana è hè utilizatu cum'è una dipendenza da più di 270 mila prughjetti in GitHub, hà una vulnerabilità (CVE-2021-28918) chì li permette di svià i cuntrolli chì utilizanu a maschera di rete. per determinà l'occurrence per indirizzà intervalli o per filtru. U prublema hè risoltu in a liberazione di node-netmask 2.0.0.

A vulnerabilità permette di trattà un indirizzu IP esternu cum'è un indirizzu da a reta interna è vice versa, è cù una certa logica di utilizà u modulu di node-netmask in l'applicazione per fà SSRF (Server-side request forgery), RFI. (Inclusioni di File Remote) è LFI (Inclusioni di File Locali) attacchi) per accede à e risorse nantu à a reta interna è include schedarii esterni o lucali in a catena di esecutivu. U prublema hè chì, secondu a specificazione, i valori di stringa di indirizzu chì cumincianu cù un cero deve esse interpretati cum'è numeri ottali, ma u modulu di node-netmask ùn piglia micca questu in contu è li tratta cum'è numeri decimali.

Per esempiu, un attaccu puderia dumandà una risorsa lucale specificendu u valore "0177.0.0.1", chì currisponde à "127.0.0.1", ma u modulu "node-netmask" scartarà u nulu, è tratta 0177.0.0.1" cum'è " 177.0.0.1", chì in l'applicazione quandu evaluà e regule d'accessu, ùn serà micca pussibule di determinà l'identità cù "127.0.0.1". In listessu modu, un attaccu pò specificà l'indirizzu "0127.0.0.1", chì deve esse identicu à "87.0.0.1", ma serà trattatu cum'è "127.0.0.1" in u modulu "node-netmask". In listessu modu, pudete ingannà u cuntrollu per l'accessu à l'indirizzi intranet specificendu valori cum'è "012.0.0.1" (equivalente à "10.0.0.1", ma serà trattatu cum'è 12.0.0.1 durante u cuntrollu).

I circadori chì identificanu u prublema chjamanu u prublema catastròficu è furnisce parechji scenarii d'attaccu, ma a maiò parte di elli parenu speculativi. Per esempiu, parla di a pussibilità di attaccà una applicazione basata in Node.js chì stabilisce cunnessione esterne per dumandà una risorsa basatu nantu à i paràmetri o dati di a dumanda di input, ma l'applicazione ùn hè micca specificamente chjamatu o detallatu. Ancu s'è truvate l'applicazioni chì caricanu risorse basate nantu à l'indirizzi IP inseriti, ùn hè micca chjaru cumu a vulnerabilità pò esse sfruttata in pratica senza cunnette à una reta lucale o senza acquistà u cuntrollu di l'indirizzi IP "specchiu".

I circadori solu assume chì i pruprietarii di 87.0.0.1 (Telecom Italia) è 0177.0.0.1 (Brasil Telecom) sò capaci di aggirari a restrizzioni di accessu à 127.0.0.1. Un scenariu più realistu hè di sfruttà a vulnerabilità per sguassate diverse liste di blocchi di l'applicazione. U prublema pò ancu esse appiicata à sparta a definizione di intervalli intranet in u modulu NPM "private-ip".

Source: opennet.ru

Add a comment