Rust and Go tīkla bibliotēkās konstatētās ievainojamības neļauj IP validēt

Nesen tika publiskota informācija par ievainojamībām kas tika atrastas valodu standarta bibliotēkās Rūsa un aiziet, kuri ir kas saistīti ar nepareizu IP adrešu apstrādi ar astoņciparu skaitļiem adrešu analīzes funkcijās.

Tiek minēts, ka eŠīs ievainojamības ļauj izvairīties no derīgu adrešu unn lietojumprogrammas, piemēram, lai organizētu piekļuvi atgriezeniskās saskarnes adresēm vai iekštīkla apakštīkliem, kad tiek veikti servera puses pieprasījumu viltošanas uzbrukumi.

Šo divu valodu ievainojamība IP adrešu virknes ir realizētas specifikācijā uz nulles bāzes, jo jūs esat teorētiski tie jāinterpretē kā astotnieki, bet problēma, kas izraisa šos traucējumus, ir tā, ka daudzas bibliotēkas to ignorē un vienkārši izmet nulli viņi galu galā uzskata vērtību par decimālu skaitli.

Piemēram, lai saprastu, kā šajās kļūdās tiek interpretētas IP adreses, skaitlis 0177 oktālā ir 127 aiz komata un ar kuru uzbrucējs var pieprasīt resursu, norādot vērtību "0177.0.0.1", kas, tā kā tas netiek ņemts vērā kā astotnieks, decimālais apzīmējums tam ir "127.0.0.1".

Tas ir iemesls, kāpēc ja izmantojat kādu no problemātiskajām bibliotēkām, lietojumprogramma neatklās adreses rašanos 0177.0.0.1 apakštīklā 127.0.0.1, bet patiesībā, nosūtot pieprasījumu, var izsaukt adresi "0177.0.0.1", kuras nepareizas interpretācijas dēļ tīkla funkcijas to apstrādās kā 127.0.0.1. Tāpat piekļuvi iekštīkla adresēm var viltot un pārbaudīt, norādot dažādas vērtības, kuras uzbrucējs novērtēs iespējamai izmantošanai.

Uz sāniem Rūss, tika konstatēts, ka problēma ir pakļauta standarta bibliotēkai "std :: net" un kas jau ir kataloģizēts sadaļā "CVE-2021-29922". Tas to apraksta šīs bibliotēkas IP adreses parsētājs atmet nulli vērtību priekšā no adreses, bet tikai tad, ja tika norādīti ne vairāk kā trīs cipari, piemēram, "0177.0.0.1" tiks interpretēts kā nederīga vērtība un atbildē tiks atgriezts nepareizs rezultāts.

Nepareiza astoņu virkņu ievades validācija rust-lang standarta "net" bibliotēkā ļauj neautentificētiem attālajiem uzbrucējiem veikt nenoteiktus SSRF, RFI un LFI uzbrukumus daudzām programmām, kas ir atkarīgas no rust-lang std :: net. IP adreses okteti tiek noņemti, nevis novērtēti kā derīgas IP adreses.

Ir arī minēts, ka lietojumprogrammas, kas izmanto bibliotēku std :: net :: IpAddr parsējot norādītās adreses pēc lietotāja ir potenciāli uzņēmīgi pret SSRF uzbrukumiem (servera puses pieprasījuma viltošana), RFI (attālā failu iekļaušana) un BSA (vietējo failu iekļaušana). Līdzīgi uzbrucējs var ievadīt 127.0.026.1, kas patiesībā ir 127.0.22

Piemēram, uzbrucējs, kurš nosūta IP adresi tīmekļa lietojumprogrammai, kuras pamatā ir std :: net :: IpAddr, var izraisīt SSRF, ievadot oktālos ievades datus; Uzbrucējs var nosūtīt izmantojamas IP adreses, ja oktetam ir 3 cipari, ar minimālo izmantojamo oktetu 08, kas noved pie pakalpojuma atteikuma, un maksimālo izmantojamo oktetu 099, kas arī noved pie pakalpojuma atteikuma. 

Ja vēlaties uzzināt vairāk par šo ievainojamību Rust, jūs varat pārbaudīt informāciju Šajā saitē. Tiek arī minēts, ka ievainojamība tika novērsta filiālē Rust 1.53.0.

Tiklīdz uz problēmu, kas ietekmē go, tiek minēts, ka tas ir pakļauts standarta bibliotēkai «net» un tas jau ir norādīts CVE-2021-29923. Aprakstā minēts, ka ļauj neautentificētiem attāliem uzbrucējiem veikt SSRF, RFI un LFI uzbrukumus nenoteikts daudzās programmās, kas ir atkarīgas no golang iebūvētā tīkla. Funkcija ParseCIDR. Atsevišķi CIDR IP okteti tiek noņemti, nevis tiek vērtēti kā derīgi IP okteti.

Piemēram, uzbrucējs var nodot vērtību 00000177.0.0.1, kas, pārbaudot to tīklā. Funkcija ParseCIDR, tiks parsēta kā 177.0.0.1/24, nevis 127.0.0.1/24. Problēma izpaužas arī platformā Kubernetes. Ievainojamība tika novērsta Go versijā 1.16.3 un beta versijā 1.17.

Jūs varat uzzināt vairāk par to par šo ievainojamību Šajā saitē.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.