Vulnerabilità in e biblioteche di rete di e lingue Rust è Go chì vi permette di passà a verificazione di l'indirizzu IP

Vulnerabilità ligati à u trattamentu incorrectu di l'indirizzi IP cù cifre octali in e funzioni di parsing di l'indirizzu sò stati identificati in e biblioteche standard di e lingue Rust è Go. E vulnerabilità permettenu di scaccià i cuntrolli per l'indirizzi validi in l'applicazioni, per esempiu, per urganizà l'accessu à l'indirizzi di l'interfaccia di loopback (127.xxx) o subnets intranet quandu realizanu attacchi SSRF (falsificazione di richieste di u servitore). I vulnerabili cuntinueghjanu u ciculu di prublemi previamente identificati in e librerie node-netmask (JavaScript, CVE-2021-28918, CVE-2021-29418), private-ip (JavaScript, CVE-2020-28360), ipaddress (Python, CVE-). 2021-29921), Data::Validate::IP (Perl, CVE-2021-29662) è Net::Netmask (Perl, CVE-2021-29424).

Sicondu a specificazione, i valori di stringa di l'indirizzu IP chì cumincianu cù un cero deve esse interpretatu cum'è numeri ottali, ma assai biblioteche ùn anu micca cunsiderà questu è solu scartà u cero, trattendu u valore cum'è un numeru decimale. Per esempiu, u numeru 0177 in octal hè uguali à 127 in decimali. Un attaccu pò dumandà una risorsa specificendu u valore "0177.0.0.1", chì in notazione decimale currisponde à "127.0.0.1". Se a biblioteca problematica hè aduprata, l'applicazione ùn detecterà micca chì l'indirizzu 0177.0.0.1 hè in a subnet 127.0.0.1/8, ma in fattu, quandu invià una dumanda, pò accede à l'indirizzu "0177.0.0.1", chì u e funzioni di rete prucederanu cum'è 127.0.0.1. In una manera simile, pudete ingannà u cuntrollu di l'accessu à l'indirizzi intranet specificendu valori cum'è "012.0.0.1" (equivalente à "10.0.0.1").

In Rust, a libreria standard "std::net" hè stata affettata da un prublema (CVE-2021-29922). L'analizzatore di l'indirizzu IP di sta libreria hà scartatu un cero prima di i valori in l'indirizzu, ma solu s'ellu ùn era micca più di trè cifri sò stati specificati, per esempiu, "0177.0.0.1" seria percepitu cum'è un valore invalidu, è un risultatu incorrectu. seria tornatu in risposta à 010.8.8.8 è 127.0.026.1. L'applicazioni chì utilizanu std::net::IpAddr quandu analizzanu l'indirizzi specificati da l'utilizatori sò potenzialmente suscettibili à attacchi SSRF (falsificazione di richieste di u latu di u servitore), RFI (inclusione di file remoti) è LFI (inclusione di file locale). A vulnerabilità hè stata riparata in a branche Rust 1.53.0.

Vulnerabilità in e biblioteche di rete di e lingue Rust è Go chì vi permette di passà a verificazione di l'indirizzu IP

In Go, a libreria standard "net" hè affettata (CVE-2021-29923). A funzione integrata net.ParseCIDR salta i zeri principali prima di i numeri ottali invece di processà. Per esempiu, un attaccu pò passà u valore 00000177.0.0.1, chì, quandu verificatu in a funzione net.ParseCIDR (00000177.0.0.1/24), serà analizatu cum'è 177.0.0.1/24, è micca 127.0.0.1/24. U prublema si manifesta ancu in a piattaforma Kubernetes. A vulnerabilità hè fissata in Go release 1.16.3 è beta 1.17.

Vulnerabilità in e biblioteche di rete di e lingue Rust è Go chì vi permette di passà a verificazione di l'indirizzu IP


Source: opennet.ru

Add a comment