د آدرس پارس کولو فنکشنونو کې د آکټل ډیجیټونو سره د IP پتې غلط پروسس کولو پورې اړوند زیانونه د Rust او Go ژبو معیاري کتابتونونو کې پیژندل شوي. زیانمننې دا ممکنه کوي چې په غوښتنلیکونو کې د باوري پتې لپاره د چکونو څخه تېر شي، د بیلګې په توګه، د لوپ بیک انٹرفیس پتې (127.xxx) یا د انټرانیټ فرعي نیټونو ته د السرسي تنظیم کول کله چې د SSRF (د سرور اړخ غوښتنه جعل) بریدونه ترسره کوي. زیانمننې د ستونزو دوره ته دوام ورکوي چې مخکې په کتابتونونو کې پیژندل شوي نوډ-نیټماسک (جاواسکریپټ، CVE-2021-28918، CVE-2021-29418)، شخصي-ip (جاوا سکریپټ، CVE-2020-28360)، ipaddress (CVE-2021) 29921-2021 )، ډاټا::Validate::IP (Perl, CVE-29662-2021) او Net::Netmask (Perl, CVE-29424-XNUMX).
د مشخصاتو له مخې، د IP پتې سټرینګ ارزښتونه چې له صفر سره پیل کیږي باید د اوکټل شمیرو په توګه تشریح شي، مګر ډیری کتابتونونه دا په پام کې نه نیسي او په ساده ډول صفر ردوي، ارزښت د لسیزې شمیرې په توګه درملنه کوي. د مثال په توګه، په octal کې 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" سره مساوي) ارزښتونو مشخص کولو سره د انټرانیټ پتې ته د لاسرسي چیک غلا کړئ.
په Rust کې، معیاري کتابتون "std::net" د یوې مسلې لخوا اغیزمن شوی (CVE-2021-29922). د دې کتابتون IP پتې پارسر په پته کې د ارزښتونو څخه مخکې صفر رد کړ، مګر یوازې که چیرې له دریو څخه زیاتې شمیرې نه وي مشخص شوي، د بیلګې په توګه، "0177.0.0.1" به د غلط ارزښت په توګه وپیژندل شي، او غلط پایله به وي. د 010.8.8.8 او 127.0.026.1 په ځواب کې به بیرته راستانه شي. هغه غوښتنلیکونه چې std::net::IpAddr کاروي کله چې د کارونکي لخوا مشخص شوي پتې پارس کوي په بالقوه توګه د SSRF (د سرور اړخ غوښتنې جعل)، RFI (د لرې فایل شاملول) او LFI (د ځایی فایل شاملول) بریدونو ته حساس دي. زیانمنتیا په Rust 1.53.0 څانګه کې ټاکل شوې وه.
په Go کې، معیاري کتابتون "نیټ" اغیزمن شوی (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. ستونزه هم پخپله د کوبرنیټس پلیټ فارم کې څرګندیږي. زیانمنتیا په Go ریلیز 1.16.3 او بیټا 1.17 کې ثابته شوې.
سرچینه: opennet.ru