Otkrili su ranjivosti u mrežnim bibliotekama Rust i Go sprečava provjeru valjanosti IP -a

Nedavno objavljene su informacije o ranjivosti koji su pronađeni u standardnim bibliotekama jezika Rust and Go, koji su vezano za netačno rukovanje IP adresama sa oktalnim znamenkama u funkcijama raščlanjivanja adresa.

Spominje se da je eOve ranjivosti omogućavaju izbjegavanje validnih verifikacija adresa in aplikacije, na primjer, za organiziranje pristupa adresama sučelja povratne petlje ili intranet podmrežama prilikom izvođenja napada krivotvorenja zahtjeva na strani servera.

Ranjivosti u ova dva jezika Nizovi IP adresa su implementirani u specifikaciji na osnovu nule, budući da ovi U teoriji ih treba tumačiti kao oktalne brojeve, ali Problem koji uzrokuje ove kvarove je što mnoge biblioteke to ne uzimaju u obzir i jednostavno odbacuju nulu, zbog čega Oni na kraju tretiraju vrijednost kao decimalni broj.

Na primjer, da bi se razumjelo kako se IP adrese tumače u ovim kvarovima, broj 0177 u oktalnom obliku je 127 u decimalnom obliku i sa kojim napadač može zatražiti resurs specificiranjem vrijednosti "0177.0.0.1", koja, budući da nije uzeto kao oktalno, decimalni zapis za ovo je "127.0.0.1".

Zbog toga u slučaju korištenja jedne od problematičnih biblioteka, aplikacija neće otkriti pojavljivanje adrese 0177.0.0.1 u podmreži 127.0.0.1, ali u stvari, kada šaljete zahtjev, možete pozvati adresu "0177.0.0.1" koju će, zbog pogrešnog tumačenja, mrežne funkcije obraditi kao 127.0.0.1. Slično, pristup intranet adresama se može prevariti i verificirati navođenjem različitih vrijednosti, koje će napadač procijeniti za moguću eksploataciju.

Sa strane Rust, otkriveno je da problem podliježe standardnoj biblioteci "std::net". i koji je već katalogiziran pod "CVE-2021-29922". To opisuje to parser IP adresa ove biblioteke odbacuje nulu ispred vrednosti adrese, ali samo ako nije navedeno više od tri cifre, na primjer, "0177.0.0.1" će se tumačiti kao nevažeća vrijednost i kao odgovor će biti vraćen netačan rezultat.

Pogrešna provjera valjanosti unosa oktalnih nizova u standardnoj biblioteci rust-lang "net" omogućava neautoriziranim udaljenim napadačima da provode nespecificirane SSRF, RFI i LFI napade na mnoge programe koji zavise od rust-lang std::net. Okteti IP adrese ostaju uklonjeni umjesto da se procjenjuju kao važeće IP adrese.

Dodatno se spominje da aplikacije koje koriste std::net::IpAddr biblioteku prilikom raščlanjivanja navedenih adresa od strane korisnika potencijalno su podložni SSRF napadima (krivotvorenje zahtjeva na strani servera), RFI (udaljeno uključivanje datoteke) i BIA (uključivanje lokalnih datoteka). Slično, napadač može uneti 127.0.026.1, što je zapravo 127.0.22

Na primjer, napadač koji šalje IP adresu web aplikaciji koja se oslanja na std::net::IpAddr može uzrokovati SSRF unošenjem oktalnih ulaznih podataka; Napadač može poslati IP adrese koje se mogu iskoristiti ako je oktet dugačak 3 cifre, pri čemu je minimalni oktet koji se može iskoristiti 08 što dovodi do uskraćivanja usluge, a maksimalni oktet koji se može iskoristiti je 099 što također dovodi do uskraćivanja usluge. 

Ako želite saznati više o ovoj ranjivosti u Rust, možete provjeriti detalje Na sledećem linku. Takođe se spominje da je ranjivost ispravljena u grani Rust 1.53.0.

Čim na problem koji utiče za Go, spominje se da ovo podliježe "net" standardnoj biblioteci i već je katalogiziran pod CVE-2021-29923. U opisu je navedeno da omogućava neautorizovanim udaljenim napadačima da provode SSRF, RFI i LFI napade neodređeno u mnogim programima koji ovise o golangovoj ugrađenoj net.ParseCIDR funkciji. Pojedinačni CIDR IP okteti se uklanjaju umjesto da se procjenjuju kao važeći IP okteti.

Na primjer, napadač može proslijediti vrijednost 00000177.0.0.1, koja će, kada je označena u funkciji net.ParseCIDR, biti raščlanjena kao 177.0.0.1/24, a ne 127.0.0.1/24. Problem se manifestuje i na Kubernetes platformi. Ranjivost je ispravljena u Go verziji 1.16.3 i beta verziji 1.17.

Možete saznati više o tome o ovoj ranjivosti Na sledećem linku.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.