So-leòntachd anns na leabharlannan lìonra de chànanan Rust and Go a leigeas leat a dhol seachad air dearbhadh seòladh IP

Tha so-leòntachd co-cheangailte ri làimhseachadh seòlaidhean IP ceàrr le àireamhan octal ann an gnìomhan parsadh sheòlaidhean air an comharrachadh ann an leabharlannan àbhaisteach nan cànanan Rust and Go. Tha na so-leòntachd ga dhèanamh comasach faighinn seachad air sgrùdaidhean airson seòlaidhean dligheach ann an tagraidhean, mar eisimpleir, gus ruigsinneachd gu seòlaidhean eadar-aghaidh loopback (127.xxx) no subnets eadra-lìon a chuir air dòigh nuair a bhios iad a’ dèanamh ionnsaighean SSRF (fiosrachadh iarrtas taobh frithealaiche). Tha na so-leòntachd a’ leantainn leis a’ chearcall de dhuilgheadasan a chaidh a chomharrachadh roimhe seo ann an nód-netmask leabharlannan (JavaScript, CVE-2021-28918, CVE-2021-29418), prìobhaideach-ip (JavaScript, CVE-2020-28360), ipaddress (Python, CVE-). 2021-29921 ), Dàta :: Dearbhaich :: IP (Perl, CVE-2021-29662) agus Net :: Netmask (Perl, CVE-2021-29424).

A rèir an t-sònrachadh, bu chòir luachan sreang seòladh IP a tha a’ tòiseachadh le neoni a bhith air am mìneachadh mar àireamhan octal, ach chan eil mòran leabharlannan a’ toirt aire don seo agus dìreach cuir às don neoni, a’ làimhseachadh an luach mar àireamh deicheach. Mar eisimpleir, tha an àireamh 0177 ann an octal co-ionann ri 127 ann an deicheach. Faodaidh neach-ionnsaigh goireas iarraidh le bhith a’ sònrachadh an luach “0177.0.0.1”, a tha ann an comharradh deicheach a’ freagairt ri “127.0.0.1”. Ma thèid an leabharlann trioblaideach a chleachdadh, chan fhaic an aplacaid gu bheil an seòladh 0177.0.0.1 anns an subnet 127.0.0.1/8, ach gu dearbh, nuair a chuireas e iarrtas, gheibh e cothrom air an t-seòladh “0177.0.0.1”, a tha an bidh gnìomhan lìonra a’ giullachd mar 127.0.0.1. San aon dòigh, faodaidh tu sgrùdadh a dhèanamh air ruigsinneachd air seòlaidhean eadra-lìon le bhith a’ sònrachadh luachan mar “012.0.0.1” (co-ionann ri “10.0.0.1”).

Ann an Rust, thug cùis buaidh air an leabharlann àbhaisteach “std::net” (CVE-2021-29922). Chuir parser seòladh IP an leabharlainn seo air falbh neoni ro na luachan san t-seòladh, ach dìreach mura biodh barrachd air trì àireamhan air an sònrachadh, mar eisimpleir, bhiodh “0177.0.0.1” air fhaicinn mar luach neo-dhligheach, agus toradh ceàrr a thilleadh mar fhreagairt gu 010.8.8.8 agus 127.0.026.1. Dh’ fhaodadh tagraidhean a chleachdas std ::net :: IpAddr nuair a thathar a’ parsadh sheòlaidhean a chaidh a shònrachadh leis a’ chleachdaiche a bhith buailteach do ionnsaighean SSRF (fiosrachadh iarrtas taobh frithealaiche), RFI (In-ghabhail Faidhle Iomallach) agus LFI (In-ghabhail File Ionadail). Chaidh an so-leòntachd a shuidheachadh ann am meur Rust 1.53.0.

So-leòntachd anns na leabharlannan lìonra de chànanan Rust and Go a leigeas leat a dhol seachad air dearbhadh seòladh IP

Ann an Go, tha buaidh air “lìon” àbhaisteach an leabharlainn (CVE-2021-29923). Bidh an gnìomh togte net.ParseCIDR a’ leum air thoiseach air neamhan ro àireamhan octal an àite a bhith gan giullachd. Mar eisimpleir, faodaidh neach-ionnsaigh an luach 00000177.0.0.1 a thoirt seachad, a thèid, nuair a thèid a sgrùdadh anns a’ ghnìomh net.ParseCIDR(00000177.0.0.1/24), a pharsadh mar 177.0.0.1/24, agus chan e 127.0.0.1/24. Tha an duilgheadas cuideachd ga nochdadh fhèin ann an àrd-ùrlar Kubernetes. Tha an so-leòntachd stèidhichte ann an Go release 1.16.3 agus beta 1.17.

So-leòntachd anns na leabharlannan lìonra de chànanan Rust and Go a leigeas leat a dhol seachad air dearbhadh seòladh IP


Source: fosgailtenet.ru

Cuir beachd ann