Nalezené zranitelnosti v síťových knihovnách Rust and Go brání ověření IP

Nedávno byly zveřejněny informace o zranitelnostech které byly nalezeny ve standardních knihovnách jazyků Rust and Go, což jsou související s nesprávným zacházením s IP adresami s osmičkovými číslicemi ve funkcích analýzy adresy.

Uvádí se, že eTyto chyby zabezpečení vám umožňují vyhnout se ověřování platných adres an aplikací, například pro organizaci přístupu k adresám rozhraní zpětné smyčky nebo intranetových podsítí, když jsou prováděny útoky na podvržení požadavku na straně serveru.

Zranitelnosti v těchto dvou jazycích Řetězce IP adres mají implementaci ve specifikaci od nuly, protože vy jste teoreticky by měly být interpretovány jako osmičková čísla, ale problém způsobující tyto závady je ten, že mnoho knihoven to ignoruje a vyřadí nulu, takže nakonec považují hodnotu za desetinné číslo.

Abychom například porozuměli tomu, jak jsou v těchto chybách interpretovány adresy IP, je číslo 0177 v osmičkové soustavě 127 v desítkové soustavě a pomocí něhož může útočník požadovat zdroj s uvedením hodnoty „0177.0.0.1“, která, protože není přijata jako osmičkový, desítkový zápis je „127.0.0.1“.

To je důvod, proč v případě použití některé z problematických knihoven, aplikace nezjistí výskyt adresy 0177.0.0.1 v podsíti 127.0.0.1, ale ve skutečnosti při odesílání požadavku lze volat adresu „0177.0.0.1“, což v důsledku nesprávné interpretace síťové funkce zpracují jako 127.0.0.1. Podobně lze přístup k intranetovým adresám oklamat a ověřit zadáním různých hodnot, které útočník vyhodnotí pro možné zneužití.

Na straně Rez, bylo zjištěno, že problém podléhá standardní knihovně "std :: net" a který je již katalogizován pod „CVE-2021-29922“. To popisuje analyzátor IP adres této knihovny zahodí nulu před hodnotami adresy, ale pouze pokud nebyly zadány více než tři číslice, například „0177.0.0.1“ bude interpretováno jako neplatná hodnota a jako odpověď bude vrácen nesprávný výsledek.

Nesprávné ověření vstupu osmičkového řetězce ve standardní „net“ knihovně rust-lang umožňuje neověřeným vzdáleným útočníkům provádět neurčité útoky SSRF, RFI a LFI na mnoha programech, které jsou závislé na rust-lang std :: net. Oktety IP adresy jsou ponechány odstraněny, místo aby byly vyhodnoceny jako platné IP adresy.

Je také zmíněno, že aplikace, které používají knihovnu std :: net :: IpAddr při analýze zadaných adres uživatelem jsou potenciálně náchylné k útokům SSRF (podvržení požadavku na straně serveru), RFI (vzdálené zahrnutí souboru) a BIA (zahrnutí místních souborů). Podobně může útočník zadat 127.0.026.1, což je ve skutečnosti 127.0.22

Například útočník, který odešle IP adresu do webové aplikace založené na std :: net :: IpAddr, může způsobit SSRF zadáním osmičkových vstupních dat; Útočník může odesílat zneužitelné IP adresy, pokud má oktet 3 číslice, přičemž minimální použitelný oktet 08 vede k odepření služby a maximální využitelný oktet 099, což také vede k odmítnutí služby. 

Pokud se chcete o této chybě zabezpečení dozvědět více v Rustu si můžete ověřit detaily Na následujícím odkazu. Je také zmíněno, že chyba zabezpečení byla opravena ve větvi Rust 1.53.0.

Jakmile k problému, který ovlivňuje to Go, uvádí se, že toto podléhá standardní knihovně «net» a je již uveden pod CVE-2021-29923. V popisu je uvedeno, že umožňuje neautentizovaným vzdáleným útočníkům provádět útoky SSRF, RFI a LFI neurčitý v mnoha programech, které závisí na vestavěné funkci net.ParseCIDR golang. Jednotlivé oktety IP CIDR jsou odstraněny, místo aby byly vyhodnoceny jako platné IP oktety.

Útočník může například předat hodnotu 00000177.0.0.1, která po zaškrtnutí ve funkci net.ParseCIDR bude analyzována jako 177.0.0.1/24, nikoli 127.0.0.1/24. Problém se projevuje také na platformě Kubernetes. Tato chyba zabezpečení byla opravena ve verzi Go 1.16.3 a beta verzi 1.17.

Můžete se o tom dozvědět více o této zranitelnosti Na následujícím odkazu.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.