De hittade sårbarheter i nätverksbiblioteken för Rust and Go som förhindrar IP -validering

nyligen information om sårbarheter släpptes som hittades i språkens standardbibliotek Rust and Go, vilka är relaterad till felaktig hantering av IP -adresser med oktalsiffror i adressanalysfunktioner.

Det nämns att eDessa sårbarheter gör att du kan undvika verifieringar av giltiga adresser ochn-applikationer, till exempel, för att organisera åtkomst till loopback-gränssnittsadresser eller intranätundernät när förfalskningsattacker på serversidan utförs.

Sårbarheterna på dessa två språk IP -adresssträngar har insikt i specifikationen nollbaserad, eftersom du är det i teorin ska de tolkas som oktala tal, men problemet som orsakar dessa fel är att många bibliotek ignorerar detta och bara slänger nollan, alltså de behandlar värdet som ett decimaltal.

Till exempel, för att förstå hur IP -adresser tolkas i dessa buggar, är antalet 0177 i oktal 127 i decimal och med vilken en angripare kan begära en resurs som anger värdet "0177.0.0.1", vilket eftersom det inte tas som oktal är decimalnotationen för detta "127.0.0.1".

Det är därför om du använder ett av de problematiska biblioteken, applikationen kommer inte att upptäcka förekomsten av adressen 0177.0.0.1 i delnätet 127.0.0.1, men i själva verket när du skickar en begäran kan adressen "0177.0.0.1" anropas, vilket på grund av felaktig tolkning kommer nätverksfunktionerna att behandla detta som 127.0.0.1. På samma sätt kan åtkomst till intranätadresser luras och verifieras genom att ange olika värden, som angriparen kommer att utvärdera för eventuell exploatering.

På sidan av Rust, problemet befanns vara föremål för standardbiblioteket "std :: net" och som redan är katalogiserat under "CVE-2021-29922". Det beskriver det bibliotekets IP -adressparser kastar en nolla framför värdena av adressen, men bara om inte mer än tre siffror specificerades, t ex tolkas "0177.0.0.1" som ett ogiltigt värde och ett felaktigt resultat returneras som svar.

Felaktig inmatning av oktalsträngsinmatning i "net" -biblioteket i rust-lang standard gör att oautentiserade fjärrangripare kan utföra obestämda SSRF-, RFI- och LFI-attacker på många program som är beroende av rust-lang std :: net. Oktetterna för IP -adressen lämnas avskalade istället för att utvärderas som giltiga IP -adresser.

Det nämns också att applikationer som använder biblioteket std :: net :: IpAddr vid analys av angivna adresser av användaren är potentiellt mottagliga för SSRF -attacker (förfalskning på serversidan), RFI (fjärranslutning av filer) och BIA (inkludering av lokala filer). På samma sätt kan en angripare ange 127.0.026.1, vilket faktiskt är 127.0.22

Till exempel kan en angripare som skickar en IP -adress till en webbapplikation som är baserad på std :: net :: IpAddr orsaka SSRF genom att mata in oktal inmatningsdata; En angripare kan skicka exploaterbara IP -adresser om oktetten har tre siffror, med den minsta exploaterbara oktetten 3 som leder till denial of service och den maximala exploaterbara oktetten 08 som också leder till denial of service. 

Om du vill veta mer om denna sårbarhet i Rust kan du kontrollera detaljerna I följande länk. Det nämns också att sårbarheten har åtgärdats i Rust 1.53.0 -grenen.

Så snart som till problemet som påverkar to Go, det nämns att detta omfattas av standardbiblioteket «net» och det är redan listat under CVE-2021-29923. I beskrivningen nämns det tillåter oautentiserade fjärranfallare att utföra SSRF-, RFI- och LFI -attacker obestämd i många program som är beroende av golangs inbyggda net.ParseCIDR-funktion. Individuella CIDR IP -oktetter strippas istället för att utvärdera dem som giltiga IP -oktetter.

Till exempel kan en angripare passera värdet 00000177.0.0.1, som vid kontroll i funktionen net.ParseCIDR kommer att analyseras som 177.0.0.1/24, inte 127.0.0.1/24. Problemet manifesterar sig också på Kubernetes -plattformen. Sårbarheten åtgärdades i Go version 1.16.3 och beta version 1.17.

Du kan lära dig mer om det om denna sårbarhet I följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.