Ata gjetën dobësi në bibliotekat e rrjetit Rust and Go parandalon vërtetimin e IP

kohët e fundit u publikua informacion mbi dobësitë që gjendeshin në bibliotekat standarde të gjuhëve Rust and Go, cilat jane lidhur me keqpërdorimin e adresave IP me shifra oktale në funksionet e analizës së adresës.

Përmendet se eKëto dobësi ju lejojnë të shmangni verifikimet e adresave të vlefshme dhen aplikacione, për shembull, për të organizuar qasjen në adresat e ndërfaqes loopback ose nënrrjetet intranet kur kryhen sulme të mashtrimit nga ana e serverit.

Dobësitë në këto dy gjuhë Vargjet e adresave IP kanë realizim në specifikim me bazë zero, meqenëse jeni në teori ato duhet të interpretohen si numra oktalë, por problemi që shkakton këto defekte është se shumë biblioteka e injorojnë këtë dhe thjesht hedhin zero, kështu përfundojnë duke e trajtuar vlerën si numër dhjetor.

Për shembull, për të kuptuar se si interpretohen adresat IP në këto gabime, numri 0177 në oktal është 127 në numër dhjetor dhe me të cilin një sulmues mund të kërkojë një burim që specifikon vlerën "0177.0.0.1", i cili, pasi nuk merret si oktal, shënimi dhjetor për këtë është "127.0.0.1".

Kjo është arsyeja pse në rastin e përdorimit të një prej bibliotekave problematike, aplikacioni nuk do të zbulojë shfaqjen e adresës 0177.0.0.1 në nën -rrjetin 127.0.0.1, por në fakt, kur dërgoni një kërkesë, mund të quhet adresa "0177.0.0.1" e cila për shkak të keqinterpretimit, funksionet e rrjetit do ta përpunojnë këtë si 127.0.0.1. Në mënyrë të ngjashme, qasja në adresat e intranetit mund të mashtrohet dhe verifikohet duke specifikuar vlera të ndryshme, të cilat sulmuesi do t'i vlerësojë për shfrytëzim të mundshëm.

Në anën e Rust, problemi u zbulua se i nënshtrohej bibliotekës standarde "std :: net" dhe e cila tashmë është kataloguar nën "CVE-2021-29922". Ajo e përshkruan atë Analizuesi i adresës IP të kësaj biblioteke hedh një zero para vlerave të adresës, por vetëm nëse nuk janë specifikuar më shumë se tre shifra, për shembull, "0177.0.0.1" do të interpretohet si një vlerë e pavlefshme dhe një rezultat i pasaktë do të kthehet në përgjigje.

Vërtetimi i gabuar i hyrjes së vargut oktal në bibliotekën standarde të ndryshkut "net" lejon sulmuesit e largët të paautentifikuar të kryejnë sulme të papërcaktuara SSRF, RFI dhe LFI në shumë programe që varen nga ndryshku-lang std :: net. Oktetet e adresës IP lihen të zhveshura në vend që të vlerësohen si adresa IP të vlefshme.

Gjithashtu përmendet se aplikacionet që përdorin bibliotekën std :: net :: IpAddr kur analizoni adresat e specifikuara nga përdoruesi janë potencialisht të ndjeshëm ndaj sulmeve SSRF (mashtrim i kërkesës nga ana e serverit), RFI (përfshirja e skedarëve në distancë) dhe BIA (përfshirja e skedarëve lokalë). Në mënyrë të ngjashme, një sulmues mund të hyjë në 127.0.026.1, që në fakt është 127.0.22

Për shembull, një sulmues që dërgon një adresë IP në një aplikacion në internet që bazohet në std :: net :: IpAddr mund të shkaktojë SSRF duke futur të dhëna oktale të dhëna; Një sulmues mund të dërgojë adresa IP të shfrytëzueshme nëse okteti ka 3 shifra, me oktetin minimal të shfrytëzueshëm 08 i cili çon në mohimin e shërbimit dhe oktetin maksimal të shfrytëzueshëm 099 i cili gjithashtu çon në mohimin e shërbimit. 

Nëse doni të dini më shumë për këtë dobësi në Rust, mund të kontrolloni detajet Në lidhjen vijuese. Përmendet gjithashtu se dobësia u rregullua në degën Rust 1.53.0.

Sapo ndaj problemit që prek për të shkuar, përmendet se kjo i nënshtrohet bibliotekës standarde "net" dhe tashmë është e shënuar nën CVE-2021-29923. Në përshkrim përmendet se lejon sulmuesit e paautorizuar në distancë të kryejnë sulme SSRF, RFI dhe LFI i papërcaktuar në shumë programe që varen nga rrjeti i integruar i golang.Funksioni ParseCIDR. Oktetet individuale IP të CIDR hiqen në vend që t'i vlerësojnë ato si oktete IP të vlefshme.

Për shembull, një sulmues mund të kalojë vlerën 00000177.0.0.1, e cila, kur kontrollohet në funksionin net.ParseCIDR, do të analizohet si 177.0.0.1/24, jo 127.0.0.1/24. Problemi shfaqet edhe në platformën Kubernetes. Dobësia u rregullua në versionin Go 1.16.3 dhe versionin beta 1.17.

Mund të mësoni më shumë për të në lidhje me këtë dobësi Në lidhjen vijuese.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.