Leochaileacht i leabharlanna líonra na dteangacha Rust and Go a ligeann duit fíorú seoltaí IP a sheachbhóthar

Aithníodh leochaileachtaí a bhaineann le próiseáil mhícheart seoltaí IP le digití octal i bhfeidhmeanna parsála seoltaí i leabharlanna caighdeánacha na dteangacha Rust and Go. Mar gheall ar na leochaileachtaí is féidir seiceálacha a sheachbhóthar le haghaidh seoltaí bailí in fheidhmchláir, mar shampla, rochtain ar sheoltaí comhéadain loopback (127.xxx) nó folíonta inlín a eagrú agus ionsaithe SSRF (brionnú iarratais ar an bhfreastalaí) á ndéanamh. Leanann na leochaileachtaí le timthriall na bhfadhbanna a aithníodh roimhe seo i nód-netmask na leabharlann (JavaScript, CVE-2021-28918, CVE-2021-29418), private-ip (JavaScript, CVE-2020-28360), ipaddress (Python, CVE-). 2021-29921 ), Sonraí::Bailíochtaigh::IP (Perl, CVE-2021-29662) agus Glan::Netmask (Perl, CVE-2021-29424).

De réir na sonraíochta, ba cheart luachanna teaghrán seoltaí IP a thosaíonn le nialas a léirmhíniú mar uimhreacha octal, ach ní chuireann go leor leabharlann é seo san áireamh agus go simplí caitheann siad an náid, ag déileáil leis an luach mar uimhir dheachúil. Mar shampla, tá an uimhir 0177 san octal cothrom le 127 sa deachúil. Is féidir le ionsaitheoir acmhainn a iarraidh tríd an luach "0177.0.0.1" a shonrú, atá i nodaireacht dheachúil a fhreagraíonn do "127.0.0.1". Má úsáidtear an leabharlann fhadhbach, ní bhraithfidh an feidhmchlár go bhfuil an seoladh 0177.0.0.1 san fho-líon 127.0.0.1/8, ach i ndáiríre, agus iarratas á sheoladh, is féidir leis an seoladh “0177.0.0.1” a rochtain. déanfar feidhmeanna líonra a phróiseáil mar 127.0.0.1. Ar an mbealach céanna, is féidir leat seiceáil rochtana ar sheoltaí inlín a cheatáil trí luachanna cosúil le “012.0.0.1” (comhionann le “10.0.0.1”) a shonrú.

I Rust, bhí tionchar ag saincheist ar an leabharlann chaighdeánach "std::net" (CVE-2021-29922). Chaith parsálaí seoltaí IP na leabharlainne seo náid roimh na luachanna sa seoladh, ach amháin mura sonraíodh níos mó ná trí dhigit, mar shampla, d'fheicfí "0177.0.0.1" mar luach neamhbhailí, agus toradh mícheart a chur ar ais mar fhreagra ar 010.8.8.8 agus 127.0.026.1 . D’fhéadfadh feidhmchláir a bhaineann úsáid as std::net::IpAddr agus seoltaí sonraithe ag an úsáideoir a pharsáil i mbaol ionsaithe SSRF (brionnú iarratais ar thaobh an fhreastalaí), RFI (Cuimsiú Comhad Iargúl) agus LFI (Cuimsiú Comhad Áitiúil). Socraíodh an leochaileacht sa bhrainse Rust 1.53.0.

Leochaileacht i leabharlanna líonra na dteangacha Rust and Go a ligeann duit fíorú seoltaí IP a sheachbhóthar

In Go, déantar difear do "líon" na leabharlainne caighdeánach (CVE-2021-29923). Scipeann an fheidhm ionsuite net.ParseCIDR náid roimh uimhreacha octal in ionad iad a phróiseáil. Mar shampla, is féidir le ionsaitheoir pas a fháil sa luach 00000177.0.0.1, agus nuair a dhéantar é a sheiceáil san fheidhm net.ParseCIDR(00000177.0.0.1/24), déanfar é a pharsáil mar 177.0.0.1/24, agus ní 127.0.0.1/24. Léirítear an fhadhb freisin ar ardán Kubernetes. Tá an leochaileacht socraithe i scaoileadh Go 1.16.3 agus beta 1.17.

Leochaileacht i leabharlanna líonra na dteangacha Rust and Go a ligeann duit fíorú seoltaí IP a sheachbhóthar


Foinse: oscailtenet.ru

Add a comment