He löysivät haavoittuvuuksia Rust and Go -verkkokirjastoista, jotka estävät IP -tarkistuksen

äskettäin tietoa haavoittuvuuksista julkaistiin jotka löytyivät kielten vakiokirjastoista Ruoste ja mene, mitkä ovat liittyvät IP -osoitteiden väärinkäsittelyyn oktaaliluvuilla osoiteanalyysitoiminnoissa.

Mainitaan, että eNäiden haavoittuvuuksien avulla voit välttää kelvollisten osoitteiden jan sovelluksia, esimerkiksi järjestääkseen pääsyn loopback-rajapintaosoitteisiin tai intranet-aliverkkoihin, kun suoritetaan palvelinpuolen pyyntöjen väärentämishyökkäyksiä.

Haavoittuvuudet näillä kahdella kielellä IP -osoitejonoilla on toteutusta spesifikaatiossa nollaperusteinen, koska olet teoriassa ne pitäisi tulkita oktaaliluvuiksi, mutta Näiden häiriöiden aiheuttama ongelma on se, että monet kirjastot eivät ota tätä huomioon ja heittävät vain nollan pois ne käsittelevät arvoa desimaalilukuna.

Esimerkiksi ymmärtääkseen kuinka IP -osoitteita tulkitaan näissä virheissä, luku 0177 oktaalissa on 127 desimaalilukua ja jolla hyökkääjä voi pyytää resurssia, joka määrittää arvon "0177.0.0.1", joka, koska sitä ei oteta oktaalina desimaaliluku tähän on "127.0.0.1".

Siksi jos käytät jotakin ongelmallista kirjastoa, sovellus ei tunnista osoitteen esiintymistä 0177.0.0.1 aliverkossa 127.0.0.1, mutta itse asiassa, kun lähetät pyynnön, voit soittaa osoitteeseen "0177.0.0.1", joka väärin tulkinnan vuoksi verkkotoiminnot käsittelevät tämän muodossa 127.0.0.1. Samoin pääsy intranet -osoitteisiin voidaan huijata ja vahvistaa määrittämällä erilaisia ​​arvoja, joita hyökkääjä arvioi mahdollisen hyödyntämisen kannalta.

Puolella Rust, ongelman havaittiin olevan vakiokirjasto "std :: net" ja joka on jo luetteloitu numerolla "CVE-2021-29922". Se kuvaa sitä tämän kirjaston IP -osoitteiden jäsentäjä hylkää nollan arvojen edessä osoitteesta, mutta vain jos enintään kolme numeroa on määritetty, esimerkiksi "0177.0.0.1" tulkitaan virheelliseksi arvoksi ja virheellinen tulos palautetaan vastauksena.

Virheellinen oktaalijonotulojen validointi ruoste-lang-standardin "net" -kirjastossa sallii todentamattomien etähyökkääjien suorittaa määrittelemättömiä SSRF-, RFI- ja LFI-hyökkäyksiä moniin ohjelmiin, jotka ovat riippuvaisia ​​rust-lang std :: netistä. IP -osoitteen oktetit jätetään pois, sen sijaan, että niitä arvioitiin kelvollisiksi IP -osoitteiksi.

Mainitaan myös, että sovellukset, jotka käyttävät std :: net :: IpAddr -kirjastoa kun jäsennellään määritettyjä osoitteita käyttäjän mukaan ovat mahdollisesti alttiita SSRF -hyökkäyksille (palvelinpuolen pyynnön huijaus), RFI (etätiedoston sisällyttäminen) ja BIA (paikallisten tiedostojen sisällyttäminen). Samoin hyökkääjä voi syöttää 127.0.026.1, joka on itse asiassa 127.0.22

Esimerkiksi hyökkääjä, joka lähettää IP -osoitteen verkkosovellukseen, joka perustuu std :: net :: IpAddr, voi aiheuttaa SSRF: n syöttämällä oktaalitulotietoja; Hyökkääjä voi lähettää hyväksikäytettäviä IP -osoitteita, jos oktetti on 3 -numeroinen, ja vähimmäiskäyttökelpoinen oktetti 08, joka johtaa palvelun epäämiseen, ja suurin käytettävissä oleva oktetti 099, joka johtaa myös palvelun epäämiseen. 

Jos haluat tietää lisää tästä haavoittuvuudesta Rustissa voit tarkistaa yksityiskohdat Seuraavassa linkissä. On myös mainittu, että haavoittuvuus on korjattu Rust 1.53.0 -haarassa.

Niin pian kuin vaikuttavaan ongelmaan Go, mainitaan, että tämä kuuluu vakiokirjastoon «net» ja se on jo listattu CVE-2021-29923. Kuvauksessa mainitaan, että sallii todentamattomien etähyökkääjien suorittaa SSRF-, RFI- ja LFI -hyökkäyksiä määrittämätön monissa ohjelmissa, jotka ovat riippuvaisia ​​golangin sisäänrakennetusta verkosta. ParseCIDR-toiminto. Yksittäiset CIDR -IP -oktetit poistetaan sen sijaan, että niitä arvioitaisiin kelvollisiksi IP -okteteiksi.

Hyökkääjä voi esimerkiksi välittää arvon 00000177.0.0.1, joka tarkastettaessa net.ParseCIDR -funktiota jäsennetään muotoon 177.0.0.1/24, ei 127.0.0.1/24. Ongelma ilmenee myös Kubernetes -alustalla. Haavoittuvuus korjattiin Go -versiossa 1.16.3 ja betaversiossa 1.17.

Voit oppia lisää siitä tästä haavoittuvuudesta Seuraavassa linkissä.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.