රස්ට් සහ ගෝ භාෂාවල සම්මත පුස්තකාලවල ලිපින විග්රහ කිරීමේ ක්රියාකාරකම්වල අෂ්ටක ඉලක්කම් සහිත IP ලිපින වැරදි ලෙස සැකසීමට සම්බන්ධ දුර්වලතා හඳුනාගෙන ඇත. දුර්වලතා මඟින් යෙදුම්වල වලංගු ලිපින සඳහා චෙක්පත් මඟ හැරීමට හැකි වේ, නිදසුනක් ලෙස, SSRF (සේවාදායක පැත්තේ ඉල්ලීම් ව්යාජ) ප්රහාර සිදු කරන විට loopback අතුරුමුහුණත් ලිපින (127.xxx) හෝ ඉන්ට්රානෙට් උපජාල වෙත ප්රවේශය සංවිධානය කිරීම. දුර්වලතා පුස්තකාල node-netmask (JavaScript, CVE-2021-28918, CVE-2021-29418), private-ip (JavaScript, CVE-2020-28360), ipaddress (Python, CVE-) තුළ කලින් හඳුනාගත් ගැටළු චක්රය දිගටම කරගෙන යයි. 2021-29921 ), දත්ත:: වලංගු:: IP (Perl, CVE-2021-29662) සහ Net:: Netmask (Perl, CVE-2021-29424).
පිරිවිතරයන්ට අනුව, ශුන්යයකින් ආරම්භ වන IP ලිපින තන්තු අගයන් අෂ්ටක සංඛ්යා ලෙස අර්ථ දැක්විය යුතුය, නමුත් බොහෝ පුස්තකාල මෙය සැලකිල්ලට නොගෙන ශුන්යය ඉවත දමා අගය දශම සංඛ්යාවක් ලෙස සලකයි. උදාහරණයක් ලෙස, අෂ්ටකයේ 0177 අංකය දශමයෙන් 127 ට සමාන වේ. ප්රහාරකයෙකුට "0177.0.0.1" අගය සඳහන් කිරීමෙන් සම්පතක් ඉල්ලා සිටිය හැක, එය දශම අංකනයේදී "127.0.0.1" ට අනුරූප වේ. ගැටළු සහගත පුස්තකාලය භාවිතා කරන්නේ නම්, 0177.0.0.1 ලිපිනය 127.0.0.1/8 උපජාලයේ ඇති බව යෙදුම අනාවරණය නොකරනු ඇත, නමුත් ඇත්ත වශයෙන්ම, ඉල්ලීමක් යැවීමේදී, එය "0177.0.0.1" ලිපිනයට ප්රවේශ විය හැක. ජාල කාර්යයන් 127.0.0.1 ලෙස සකසනු ඇත. ඒ හා සමාන ආකාරයකින්, ඔබට “012.0.0.1” (“10.0.0.1” ට සමාන) වැනි අගයන් සඳහන් කිරීමෙන් ඉන්ට්රානෙට් ලිපින වෙත ප්රවේශය පරීක්ෂා කිරීම වංචා කළ හැකිය.
රස්ට් හි, සම්මත පුස්තකාලය "std::net" ගැටලුවකින් බලපෑවේය (CVE-2021-29922). මෙම පුස්තකාලයේ IP ලිපින විග්රහකය ලිපිනයේ ඇති අගයන්ට පෙර බිංදුවක් ඉවත දමන නමුත් ඉලක්කම් තුනකට වඩා සඳහන් කර නොමැති නම් පමණි, උදාහරණයක් ලෙස, “0177.0.0.1” වලංගු නොවන අගයක් ලෙස සහ වැරදි ප්රතිඵලයක් ලෙස සලකනු ලැබේ. 010.8.8.8 සහ 127.0.026.1 ට ප්රතිචාර වශයෙන් ආපසු එවනු ලැබේ. පරිශීලක-නිශ්චිත ලිපින විග්රහ කිරීමේදී std::net::IpAddr භාවිතා කරන යෙදුම් SSRF (සේවාදායක පැත්තේ ඉල්ලීම් ව්යාජය), RFI (දුරස්ථ ගොනු ඇතුළත් කිරීම) සහ LFI (දේශීය ගොනු ඇතුළත් කිරීම්) ප්රහාරවලට ගොදුරු විය හැකිය. රස්ට් 1.53.0 ශාඛාව තුළ අවදානම සවි කර ඇත.
Go හි, සම්මත පුස්තකාල "net" බලපෑමට ලක් වේ (CVE-2021-29923). net.ParseCIDR බිල්ට්-ඉන් ශ්රිතය ඒවා සැකසීම වෙනුවට අෂ්ටක සංඛ්යා වලට පෙර ඉදිරි බිංදු මඟ හරියි. උදාහරණයක් ලෙස, ප්රහාරකයෙකුට 00000177.0.0.1 අගය පසු කළ හැක, එය, net.ParseCIDR(00000177.0.0.1/24) ශ්රිතය තුළ පරීක්ෂා කළ විට, 177.0.0.1/24 ලෙස විග්රහ කරනු ලැබේ, 127.0.0.1/24 නොවේ. ගැටලුව Kubernetes වේදිකාවේ ද විදහා දක්වයි. Go නිකුතුව 1.16.3 සහ බීටා 1.17 හි අවදානම නිරාකරණය කර ඇත.
මූලාශ්රය: opennet.ru