Našli zraniteľné miesta v sieťových knižniciach Rust and Go, ktoré bránia validácii IP

Nedávno boli zverejnené informácie o zraniteľnostiach ktoré sa našli v štandardných knižniciach jazykov Rust and Go, ktoré sú súvisiace s nesprávnym zaobchádzaním s IP adresami s osmičkovými číslicami vo funkciách analýzy adries.

Uvádza sa, že eTieto chyby zabezpečenia vám umožňujú vyhnúť sa kontrole platných adries an aplikácií, napríklad na organizovanie prístupu k adresám rozhrania loopback alebo k intranetovým podsietiam, keď sa vykonávajú útoky spoofingu na strane servera.

Zraniteľnosti v týchto dvoch jazykoch Reťazce IP adries majú implementáciu v špecifikácii od nuly, pretože vy ste teoreticky by sa mali interpretovať ako osmičkové čísla, ale problém spôsobujúci tieto chyby je v tom, že mnohé knižnice to ignorujú a nulu teda zahodia skončia s hodnotou ako s desatinným číslom.

Aby sa napríklad pochopilo, ako sa v týchto chybách interpretujú adresy IP, číslo 0177 v osmičke je 127 v desatinnom čísle a pomocou ktorého môže útočník požiadať o zdroj s uvedením hodnoty „0177.0.0.1“, ktorý, pretože sa neberie ako osmičkové číslo je pre toto desatinné číslo „127.0.0.1“.

To je dôvod, prečo v prípade použitia jednej z problematických knižníc, aplikácia nezistí výskyt adresy 0177.0.0.1 v podsiete 127.0.0.1, ale v skutočnosti pri odosielaní požiadavky môžete zavolať na adresu „0177.0.0.1“, ktorá v dôsledku nesprávnej interpretácie sieťové funkcie spracujú ako 127.0.0.1. Podobne je možné oklamať a overiť prístup k intranetovým adresám zadaním rôznych hodnôt, ktoré útočník vyhodnotí z dôvodu možného zneužitia.

Na strane Hrdza, zistilo sa, že problém podlieha štandardnej knižnici „std :: net“ a ktorý je už katalogizovaný pod „CVE-2021-29922“. Opisuje to analyzátor adries IP tejto knižnice zahodí pred hodnoty nulu adresy, ale iba vtedy, ak neboli zadané viac ako tri číslice, napríklad „0177.0.0.1“ bude interpretovaný ako neplatná hodnota a ako odpoveď sa vráti nesprávny výsledok.

Nesprávne overenie vstupu osmičkového reťazca v štandardnej „net“ knižnici rust-lang umožňuje neovereným vzdialeným útočníkom vykonávať neurčité útoky SSRF, RFI a LFI na mnohých programoch, ktoré závisia od rust-lang std :: net. Oktety IP adresy sa ponechajú odstránené, namiesto toho, aby boli vyhodnotené ako platné IP adresy.

Tiež sa uvádza, že aplikácie, ktoré používajú knižnicu std :: net :: IpAddr pri analýze uvedených adries používateľom sú potenciálne citlivé na útoky SSRF (spoofing požiadaviek na strane servera), RFI (vzdialené zahrnutie súboru) a BIA (zahrnutie miestnych súborov). Podobne môže útočník zadať 127.0.026.1, čo je v skutočnosti 127.0.22

Napríklad útočník, ktorý pošle IP adresu do webovej aplikácie, ktorá je založená na std :: net :: IpAddr, môže spôsobiť SSRF zadaním osmičkových vstupných údajov; Útočník môže odosielať zneužiteľné adresy IP, ak má oktet tri číslice, pričom minimálny zneužiteľný oktet 3 vedie k odmietnutiu služby a maximálny využiteľný oktet 08, ktorý tiež vedie k odmietnutiu služby. 

Ak sa chcete o tejto zraniteľnosti dozvedieť viac v Rust si môžete skontrolovať detaily Na nasledujúcom odkaze. Tiež sa spomína, že zraniteľnosť bola opravená vo vetve Rust 1.53.0.

Akonáhle k problému, ktorý sa týka to Go, uvádza sa, že to podlieha štandardnej knižnici «net» a už je zaradený pod CVE-2021-29923. V popise je uvedené, že Umožňuje neautentizovaným vzdialeným útočníkom vykonávať útoky SSRF, RFI a LFI neurčité v mnohých programoch, ktoré závisia od vstavanej funkcie net.ParseCIDR golang. Jednotlivé oktety IP CIDR sa odstránia namiesto toho, aby sa vyhodnotili ako platné IP oktety.

Útočník môže napríklad odovzdať hodnotu 00000177.0.0.1, ktorá po zaškrtnutí vo funkcii net.ParseCIDR bude analyzovaná ako 177.0.0.1/24, nie 127.0.0.1/24. Problém sa prejavuje aj na platforme Kubernetes. Zraniteľnosť bola opravená vo verzii Go 1.16.3 a beta verzii 1.17.

Môžete sa o tom dozvedieť viac o tejto zraniteľnosti Na nasledujúcom odkaze.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.