Au descoperit vulnerabilități în bibliotecile de rețea Rust and Go împiedică validarea IP

recent au fost lansate informații despre vulnerabilități care au fost găsite în bibliotecile standard ale limbilor Rust and Go, care sunt legate de gestionarea greșită a adreselor IP cu cifre octale în funcțiile de analiză a adresei.

Se menționează că eAceste vulnerabilități vă permit să evitați verificările adresei valide șin aplicații, de exemplu, pentru a organiza accesul la adresele de interfață loopback sau subrețele intranet atunci când sunt efectuate atacuri de falsificare a cererii de la server.

Vulnerabilitățile în aceste două limbi Șirurile de adrese IP au realizare în specificație bazat pe zero, din moment ce sunteți teoretic ar trebui interpretate ca numere octale, dar problema care cauzează aceste erori este că multe biblioteci ignoră acest lucru și aruncă doar zero, deci ajung să trateze valoarea ca un număr zecimal.

De exemplu, pentru a înțelege modul în care adresele IP sunt interpretate în aceste bug-uri, numărul 0177 în octal este 127 în zecimal și cu care un atacator poate solicita o resursă specificând valoarea „0177.0.0.1”, care, deoarece nu este luată ca octal, notația zecimală pentru aceasta este „127.0.0.1”.

De aceea în cazul utilizării uneia dintre bibliotecile problematice, aplicația nu va detecta apariția adresei 0177.0.0.1 în subrețeaua 127.0.0.1, dar, de fapt, la trimiterea unei cereri, se poate apela adresa „0177.0.0.1”, care din cauza interpretării greșite, funcțiile de rețea vor procesa acest lucru ca 127.0.0.1. În mod similar, accesul la adrese intranet poate fi păcălit și verificat prin specificarea diferitelor valori, pe care atacatorul le va evalua pentru o posibilă exploatare.

Pe partea de Rugină, problema s-a dovedit a fi supusă bibliotecii standard „std :: net” și care este deja catalogat sub „CVE-2021-29922”. Descrie asta analizorul de adrese IP al acestei biblioteci aruncă un zero în fața valorilor de adresă, dar numai dacă nu au fost specificate mai mult de trei cifre, de exemplu, „0177.0.0.1” va fi interpretat ca o valoare nevalidă și un rezultat incorect va fi returnat ca răspuns.

Validarea incorectă a intrării șirului octal în biblioteca „net” standard rust-lang permite atacatorilor la distanță neautentificați să efectueze atacuri SSRF, RFI și LFI nedeterminate pe multe programe care depind de rust-lang std :: net. Octetii adresei IP sunt lăsați eliminați în loc să fie evaluați ca adrese IP valide.

De asemenea, se menționează că aplicațiile care utilizează biblioteca std :: net :: IpAddr la analizarea adreselor specificate de către utilizator sunt susceptibile la atacuri SSRF (spoofing cerere pe partea de server), RFI (includerea fișierelor la distanță) și BIA (includerea fișierelor locale). În mod similar, un atacator poate introduce 127.0.026.1, care este de fapt 127.0.22

De exemplu, un atacator care trimite o adresă IP către o aplicație web bazată pe std :: net :: IpAddr ar putea provoca SSRF introducând date de intrare octale; Un atacator poate trimite adrese IP exploatabile dacă octetul are 3 cifre, cu octetul minim exploatabil 08 care duce la refuzul de serviciu și octetul maxim exploatabil 099 care duce și la refuzul de serviciu. 

Dacă doriți să aflați mai multe despre această vulnerabilitate în Rust, puteți verifica detaliile În următorul link. De asemenea, se menționează că vulnerabilitatea a fost remediată în ramura Rust 1.53.0.

De îndată ce la problema care afectează pentru a merge, se menționează că acest lucru este supus bibliotecii standard «net» și este deja listat sub CVE-2021-29923. În descriere se menționează că permite atacatorilor la distanță neautentificați să efectueze atacuri SSRF, RFI și LFI nedeterminat în multe programe care depind de rețeaua încorporată a Golang. Funcția ParseCIDR. Octetii IP CIDR individuali sunt eliminați în loc să-i evalueze ca octeți IP valizi.

De exemplu, un atacator poate trece valoarea 00000177.0.0.1, care, atunci când este bifată în funcția net.ParseCIDR, va fi analizată ca 177.0.0.1/24, nu 127.0.0.1/24. Problema se manifestă și pe platforma Kubernetes. Vulnerabilitatea a fost remediată în Go versiunea 1.16.3 și beta versiunea 1.17.

Puteți afla mai multe despre asta despre această vulnerabilitate În următorul link.


Fii primul care comenteaza

Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.