Udhaifu katika maktaba za mtandao za lugha za Rust na Go ambazo hukuruhusu kupitisha uthibitishaji wa anwani ya IP.

Athari zinazohusiana na uchakataji usio sahihi wa anwani za IP zenye tarakimu octal katika kazi za uchanganuzi za anwani zimetambuliwa katika maktaba ya kawaida ya lugha za Rust na Go. Athari za kiusalama hufanya iwezekane kukwepa ukaguzi wa anwani halali katika programu, kwa mfano, kupanga ufikiaji wa anwani za kiolesura cha loopback (127.xxx) au nyati ndogo za intraneti wakati wa kutekeleza mashambulizi ya SSRF (kughushi ombi la seva). Udhaifu huendeleza mzunguko wa matatizo yaliyotambuliwa hapo awali katika nodi-netmask ya maktaba (JavaScript, CVE-2021-28918, CVE-2021-29418), private-ip (JavaScript, CVE-2020-28360), ipaddress (Python, CVE- 2021-29921 ), Data::Thibitisha::IP (Perl, CVE-2021-29662) na Net::Netmask (Perl, CVE-2021-29424).

Kulingana na vipimo, maadili ya kamba ya anwani ya IP inayoanza na sifuri inapaswa kufasiriwa kama nambari za octal, lakini maktaba nyingi hazizingatii hii na hutupa sifuri, ikichukulia thamani kama nambari ya desimali. Kwa mfano, nambari 0177 katika octal ni sawa na 127 katika decimal. Mshambulizi anaweza kuomba rasilimali kwa kubainisha thamani "0177.0.0.1", ambayo katika nukuu ya desimali inalingana na "127.0.0.1". Ikiwa maktaba yenye shida inatumiwa, programu haitagundua kuwa anwani 0177.0.0.1 iko kwenye subnet 127.0.0.1/8, lakini kwa kweli, wakati wa kutuma ombi, inaweza kufikia anwani "0177.0.0.1", ambayo kazi za mtandao zitachakatwa kama 127.0.0.1. Vivyo hivyo, unaweza kudanganya hundi ya ufikiaji wa anwani za intraneti kwa kubainisha maadili kama "012.0.0.1" (sawa na "10.0.0.1").

Katika Rust, maktaba ya kawaida "std::net" iliathiriwa na suala (CVE-2021-29922). Kichanganuzi cha anwani ya IP cha maktaba hii kilitupilia mbali sifuri kabla ya thamani katika anwani, lakini tu ikiwa hakuna zaidi ya tarakimu tatu zilizobainishwa, kwa mfano, "0177.0.0.1" ingetambuliwa kama thamani isiyo sahihi, na matokeo yasiyo sahihi. itarejeshwa kwa kujibu 010.8.8.8 na 127.0.026.1 . Programu zinazotumia std::net::IpAddr wakati wa kuchanganua anwani zilizobainishwa na mtumiaji zinaweza kuathiriwa na mashambulizi ya SSRF (kughushi ombi la upande wa Seva), RFI (Ujumuishaji wa Faili ya Mbali) na LFI (Ujumuishaji wa Faili za Karibu). Athari hii ilirekebishwa katika tawi la Rust 1.53.0.

Udhaifu katika maktaba za mtandao za lugha za Rust na Go ambazo hukuruhusu kupitisha uthibitishaji wa anwani ya IP.

Katika Go, maktaba ya kawaida "net" imeathiriwa (CVE-2021-29923). Chaguo za kukokotoa zilizojengewa ndani za net.ParseCIDR huruka sufuri zinazotangulia kabla ya nambari za octal badala ya kuzichakata. Kwa mfano, mshambulizi anaweza kupitisha thamani 00000177.0.0.1, ambayo, ikiangaliwa katika chaguo za kukokotoa za net.ParseCIDR(00000177.0.0.1/24), itachanganuliwa kama 177.0.0.1/24, na si 127.0.0.1/24. Tatizo pia linajidhihirisha katika jukwaa la Kubernetes. Athari hii imerekebishwa katika toleo la Go 1.16.3 na beta 1.17.

Udhaifu katika maktaba za mtandao za lugha za Rust na Go ambazo hukuruhusu kupitisha uthibitishaji wa anwani ya IP.


Chanzo: opennet.ru

Kuongeza maoni