Schwachstelle an den Netzwierkbibliothéike vu Rust a Go Sproochen déi Iech erlaabt d'IP Adress Verifizéierung z'iwwergoen

Schwachstelle am Zesummenhang mat der falscher Veraarbechtung vun IP Adressen mat oktalen Zifferen an Adressparsingfunktiounen goufen an de Standardbibliothéike vun de Rust a Go Sproochen identifizéiert. D'Schwieregkeeten maachen et méiglech Kontrollen fir gëlteg Adressen an Applikatiounen z'iwwergoen, zum Beispill fir Zougang zu Loopback Interface Adressen (127.xxx) oder Intranet Subnets z'organiséieren wann Dir SSRF (Server-Säit Ufro Fälschung) Attacken ausféiert. D'Schwieregkeeten fuerderen den Zyklus vu Probleemer virdru identifizéiert an de Bibliothéiken Node-Netmaske (JavaScript, CVE-2021-28918, CVE-2021-29418), private-ip (JavaScript, CVE-2020-28360), ipaddress (Python, CVE- 2021-29921), Data :: Validéieren :: IP (Perl, CVE-2021-29662) an Net :: Netmask (Perl, CVE-2021-29424).

Geméiss der Spezifizéierung, IP Adress String Wäerter, déi mat enger Null ufänken, sollten als oktal Zuelen interpretéiert ginn, awer vill Bibliothéiken huelen dat net berücksichtegt an einfach d'Null ofwerfen, de Wäert als Dezimalzuel behandelen. Zum Beispill ass d'Zuel 0177 am Oktal gläich wéi 127 an Dezimal. En Ugräifer kann eng Ressource ufroen andeems Dir de Wäert "0177.0.0.1" spezifizéiert, deen an der Dezimalnotatioun "127.0.0.1" entsprécht. Wann déi problematesch Bibliothéik benotzt gëtt, erkennt d'Applikatioun net datt d'Adress 0177.0.0.1 am Subnet 127.0.0.1/8 ass, awer tatsächlech, wann Dir eng Ufro schéckt, kann et op d'Adress "0177.0.0.1" kommen, déi de Reseau Funktiounen wäerten als 127.0.0.1 veraarbecht ginn. Op eng ähnlech Manéier kënnt Dir d'Check vum Zougang zu Intranetadressen fuddelen andeems Dir Wäerter spezifizéiert wéi "012.0.0.1" (entspriechend "10.0.0.1").

Am Rust war d'Standardbibliothéik "std :: net" vun engem Problem betraff (CVE-2021-29922). Den IP Adress Parser vun dëser Bibliothéik huet eng Null virun de Wäerter an der Adress verworf, awer nëmmen wann net méi wéi dräi Ziffere spezifizéiert goufen, zum Beispill, "0177.0.0.1" géif als ongëlteg Wäert an e falscht Resultat ugesi ginn. géif als Äntwert op 010.8.8.8 an 127.0.026.1 zréckginn. Uwendungen déi std :: net :: IpAddr benotzen beim Parsing vun Benotzerspezifizéierter Adressen sinn potenziell ufälleg fir SSRF (Server-Säit Ufro Fälschung), RFI (Remote File Inclusioun) an LFI (Local File Inclusioun) Attacken. D'Schwachheet gouf an der Rust 1.53.0 Filial fixéiert.

Schwachstelle an den Netzwierkbibliothéike vu Rust a Go Sproochen déi Iech erlaabt d'IP Adress Verifizéierung z'iwwergoen

Am Go ass d'Standardbibliothéik "net" betraff (CVE-2021-29923). D'Netz.ParseCIDR gebaut-an Funktioun spréngt féierend Nullen virun oktal Zuelen amplaz se ze veraarbecht. Zum Beispill kann en Ugräifer de Wäert 00000177.0.0.1 passéieren, deen, wann se am Netz gepréift gëtt. De Problem manifestéiert sech och an der Kubernetes Plattform. D'Vulnerabilitéit ass fixéiert an der Go Verëffentlechung 00000177.0.0.1 a Beta 24.

Schwachstelle an den Netzwierkbibliothéike vu Rust a Go Sproochen déi Iech erlaabt d'IP Adress Verifizéierung z'iwwergoen


Source: opennet.ru

Setzt e Commentaire