Ailagbara ninu awọn ile ikawe nẹtiwọọki ti awọn ede Rust ati Go ti o fun ọ laaye lati fori ijẹrisi adirẹsi IP

Awọn ailagbara ti o ni ibatan si sisẹ ti ko tọ ti awọn adirẹsi IP pẹlu awọn nọmba octal ni awọn iṣẹ ṣiṣe itupalẹ adirẹsi ni a ti damọ ni awọn ile-ikawe boṣewa ti awọn ede Rust ati Go. Awọn ailagbara jẹ ki o ṣee ṣe lati fori awọn sọwedowo fun awọn adirẹsi to wulo ninu awọn ohun elo, fun apẹẹrẹ, lati ṣeto iraye si awọn adirẹsi wiwo loopback (127.xxx) tabi awọn subnets intranet nigbati o ba n ṣe awọn ikọlu SSRF (ibeere ẹgbẹ olupin). Awọn ailagbara naa tẹsiwaju iyipo ti awọn iṣoro ti a ti mọ tẹlẹ ninu awọn ile-ikawe node-netmask (JavaScript, CVE-2021-28918, CVE-2021-29418), ikọkọ-ip (JavaScript, CVE-2020-28360), ipaddress (Python, CVE- 2021-29921), Data :: afọwọsi :: IP (Perl, CVE-2021-29662) ati Net :: Netmask (Perl, CVE-2021-29424).

Gẹgẹbi sipesifikesonu, awọn iye okun adiresi IP ti o bẹrẹ pẹlu odo yẹ ki o tumọ bi awọn nọmba octal, ṣugbọn ọpọlọpọ awọn ile-ikawe ko gba eyi sinu akọọlẹ ki o sọ ọ silẹ nirọrun, ni itọju iye bi nọmba eleemewa kan. Fun apẹẹrẹ, nọmba 0177 ni octal jẹ dogba si 127 ni eleemewa. Olukọni le beere fun orisun kan nipa sisọ iye "0177.0.0.1", eyiti o jẹ ami-ami eleemewa ni ibamu pẹlu "127.0.0.1". Ti o ba ti lo ile-ikawe iṣoro, ohun elo naa kii yoo rii pe adirẹsi 0177.0.0.1 wa ninu subnet 127.0.0.1/8, ṣugbọn ni otitọ, nigbati o ba fi ibeere ranṣẹ, o le wọle si adirẹsi “0177.0.0.1”, eyiti o jẹ awọn iṣẹ nẹtiwọki yoo ṣe ilana bi 127.0.0.1. Ni ọna ti o jọra, o le ṣe iyanjẹ ayẹwo wiwọle si awọn adirẹsi intranet nipa sisọ awọn iye bii “012.0.0.1” (deede si “10.0.0.1”).

Ni ipata, ile-ikawe boṣewa “std :: net” ni ipa nipasẹ ọran kan (CVE-2021-29922). Itupalẹ adiresi IP ti ile-ikawe yii jẹ odo kan ṣaaju awọn iye ti o wa ninu adirẹsi naa, ṣugbọn nikan ti ko ba si ju awọn nọmba mẹta lọ ni pato, fun apẹẹrẹ, “0177.0.0.1” yoo ni akiyesi bi iye ti ko tọ, ati abajade ti ko tọ. yoo pada ni idahun si 010.8.8.8 ati 127.0.026.1. Awọn ohun elo ti o lo std :: netiwọki :: IPAddr nigbati o n ṣe itupalẹ awọn adirẹsi olumulo-pato ni o le ni ifaragba si awọn ikọlu SSRF (ibeere-ẹgbẹ olupin), RFI (Ifisi Faili Latọna) ati LFI (Ifikun Faili Agbegbe). Ailagbara naa wa titi ni ẹka Rust 1.53.0.

Ailagbara ninu awọn ile ikawe nẹtiwọọki ti awọn ede Rust ati Go ti o fun ọ laaye lati fori ijẹrisi adirẹsi IP

Ni Go, ile-ikawe boṣewa “net” ni ipa (CVE-2021-29923). Awọn net.ParseCIDR-itumọ ti ni iṣẹ foo asiwaju odo ṣaaju ki o to octal awọn nọmba dipo ti processing wọn. Fun apẹẹrẹ, ikọlu le kọja iye 00000177.0.0.1, eyiti, nigbati o ba ṣayẹwo ni net.ParseCIDR (00000177.0.0.1/24) iṣẹ, yoo ṣe itupalẹ bi 177.0.0.1/24, kii ṣe 127.0.0.1/24. Iṣoro naa tun ṣafihan ararẹ ni pẹpẹ Kubernetes. Ailagbara naa wa titi ni idasilẹ Go 1.16.3 ati beta 1.17.

Ailagbara ninu awọn ile ikawe nẹtiwọọki ti awọn ede Rust ati Go ti o fun ọ laaye lati fori ijẹrisi adirẹsi IP


orisun: opennet.ru

Fi ọrọìwòye kun