Najdene ranljivosti v omrežnih knjižnicah Rust and Go preprečujejo preverjanje veljavnosti IP

Pred kratkim so bile objavljene informacije o ranljivostih ki so jih našli v standardnih knjižnicah jezikov Rjazi in pojdi, ki so v zvezi z napačnim ravnanjem z naslovi IP z oktalnimi števkami v funkcijah za analizo naslovov.

Omenjeno je, da eTe ranljivosti vam omogočajo, da se izognete veljavnim preverjanjem naslovov inn aplikacij, na primer za organizacijo dostopa do naslovov vmesnikov z povratno zanko ali intranetnih podomrežij, ko se izvajajo napadi ponarejanja zahtev na strani strežnika.

Pomanjkljivosti v teh dveh jezikih Niz naslovov IP ima v specifikaciji realizacijo ničelno, saj ste teoretično bi jih morali razlagati kot oktalne številke, vendar težava, ki povzroča te napake, je v tem, da mnoge knjižnice tega ne upoštevajo in tako zavržejo ničlo na koncu vrednost obravnavajo kot decimalno število.

Na primer, da bi razumeli, kako se naslovi IP razlagajo v teh hroščih, je število 0177 v osmih številkah 127 v decimalni številki in s katerim lahko napadalec zahteva vir, ki določa vrednost "0177.0.0.1", ki pa se ne vzame kot osmi, je decimalni zapis za to "127.0.0.1".

To je razlog v primeru uporabe ene od problematičnih knjižnic, aplikacija ne zazna zaznavanja naslova 0177.0.0.1 v podomrežju 127.0.0.1, v resnici pa je pri pošiljanju zahteve mogoče poklicati naslov "0177.0.0.1", ki ga bodo zaradi napačne razlage omrežne funkcije obdelale kot 127.0.0.1. Podobno je dostop do intranetnih naslovov mogoče prelisičiti in preveriti z določitvijo različnih vrednosti, ki jih bo napadalec ocenil za morebitno izkoriščanje.

Na strani Rust, za težavo je veljala standardna knjižnica "std :: net" in ki je že katalogiziran pod "CVE-2021-29922". To opisuje razčlenjevalnik naslovov IP te knjižnice zavrže ničlo pred vrednostmi naslova, vendar le, če niso bile podane več kot tri številke, na primer "0177.0.0.1" bo razlagano kot neveljavna vrednost in v odgovor bo vrnjen napačen rezultat.

Napačna potrditev vnosa osmih nizov v standardni knjižnici "net" rust-lang omogoča oddaljenim napadalcem brez pristnosti izvajanje nedoločenih napadov SSRF, RFI in LFI na številne programe, ki so odvisni od rust-lang std :: net. Okteti naslova IP ostanejo raztrgani, namesto da bi bili ocenjeni kot veljavni naslovi IP.

Omenjeno je tudi, da aplikacije, ki uporabljajo knjižnico std :: net :: IpAddr pri razčlenjevanju določenih naslovov uporabnik so potencialno dovzetni za napade SSRF (ponarejanje zahtev na strani strežnika), RFI (vključitev datotek na daljavo) in BIA (vključitev lokalnih datotek). Podobno lahko napadalec vnese 127.0.026.1, kar je dejansko 127.0.22

Na primer, napadalec, ki pošlje naslov IP spletni aplikaciji, ki temelji na std :: net :: IpAddr, lahko povzroči SSRF z vnosom osmih vhodnih podatkov; Napadalec lahko pošlje uporabniške naslove IP, če ima oktet tri števke, pri čemer je najmanjši oktet 3, ki vodi v zavrnitev storitve, in največji oktet 08, ki lahko izkoristi, kar vodi tudi v zavrnitev storitve. 

Če želite izvedeti več o tej ranljivosti v Rustu lahko preverite podrobnosti V naslednji povezavi. Omenjeno je tudi, da je bila ranljivost odpravljena v veji Rust 1.53.0.

Takoj, ko na problem, ki vpliva to Go, je omenjeno, da za to velja standardna knjižnica «net» in je že naveden pod CVE-2021-29923. V opisu je omenjeno, da omogoča nepooblaščenim napadalcem na daljavo izvajanje napadov SSRF, RFI in LFI nedoločen v mnogih programih, ki so odvisni od vgrajene mreže golanga.ParseCIDR. Posamezni okteti IP CIDR se odstranijo, namesto da bi jih ocenili kot veljavne IP oktete.

Na primer, napadalec lahko prenese vrednost 00000177.0.0.1, ki bo ob preverjanju v funkciji net.ParseCIDR razčlenjena kot 177.0.0.1/24 in ne 127.0.0.1/24. Težava se kaže tudi na platformi Kubernetes. Ranljivost je bila odpravljena v različici Go 1.16.3 in beta različici 1.17.

Več o tem lahko izveste glede te ranljivosti V naslednji povezavi.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.