Faʻafitauli i totonu o faletusi fesoʻotaʻiga a Rust ma Go gagana e mafai ai ona e pasia le faʻamaoniga o tuatusi IP

O fa'aletonu e feso'ota'i ma fa'agaioiga le sa'o o tuatusi IP ma numera octal i galuega fa'asalalau tuatusi ua fa'ailoaina i faletusi masani o gagana Rust ma Go. O fa'aletonu e mafai ai ona pasi siaki mo tuatusi aoga i totonu o talosaga, mo se fa'ata'ita'iga, e fa'atulaga avanoa i tuatusi fa'afeso'ota'i loopback (127.xxx) po'o intranet subnets pe a faia osofa'iga SSRF (Server-side request forgery). O faʻafitauli faʻaletonu o loʻo faʻaauau pea le taamilosaga o faʻafitauli na faʻaalia muamua i totonu o faletusi node-netmask (JavaScript, CVE-2021-28918, CVE-2021-29418), private-ip (JavaScript, CVE-2020-28360), ipaddress (Python, CVE- 2021-29921 ), Faʻamaumauga :: Faʻamaonia :: IP (Perl, CVE-2021-29662) ma Net :: Netmask (Perl, CVE-2021-29424).

E tusa ai ma le faʻamatalaga, o le numera o le laina tuatusi IP e amata i le zero e tatau ona faʻamatalaina o numera octal, ae o le tele o faletusi e le amanaia lenei mea ma na o le lafoaia o le zero, faʻaogaina le tau o se numera numera. Mo se faʻataʻitaʻiga, o le numera 0177 i le octal e tutusa ma le 127 i le decimal. E mafai e se tagata osofa'i ona talosagaina se puna'oa e ala i le fa'amaotiina o le tau "0177.0.0.1", lea i fa'ailoga decimal e fetaui ma le "127.0.0.1". Afai e faʻaaogaina le faletusi faʻafitauli, o le a le iloa e le talosaga o le tuatusi 0177.0.0.1 o loʻo i le subnet 127.0.0.1/8, ae o le mea moni, pe a lafoina se talosaga, e mafai ona maua le tuatusi "0177.0.0.1", lea e galuega feso'ota'iga ole a fa'agasolo ile 127.0.0.1. I se auala talitutusa, e mafai ona e kopiina le siaki o le avanoa i tuatusi initaneti e ala i le faʻamaonia o tau e pei o le "012.0.0.1" (e tutusa ma le "10.0.0.1").

I Rust, o le faletusi masani "std :: net" na afaina i se mataupu (CVE-2021-29922). O le IP address parser o lenei faletusi na lafoaia se zero i luma o tau i le tuatusi, ae naʻo pe a le sili atu ma le tolu numera na faʻamaonia, mo se faʻataʻitaʻiga, "0177.0.0.1" o le a manatu o se tau le aoga, ma o se taunuuga le saʻo o le a toe faafoi i le tali i le 010.8.8.8 ma le 127.0.026.1 . Talosaga e fa'aoga std::net::IpAddr pe a fa'asolo tuatusi fa'apitoa a tagata e ono a'afia ile SSRF (Server-side request forgery), RFI (Remote File Inclusion) ma LFI (Local File Inclusion) osofa'iga. O le faʻafitauli na faʻamautu i le Rust 1.53.0 lala.

Faʻafitauli i totonu o faletusi fesoʻotaʻiga a Rust ma Go gagana e mafai ai ona e pasia le faʻamaoniga o tuatusi IP

I Go, o loʻo aʻafia ai le faletusi masani "net" (CVE-2021-29923). O le net.ParseCIDR ua fausia i totonu e fa'ase'e le ta'ita'iina o zero i luma o numera octal nai lo le fa'agaioiina. Mo se faʻataʻitaʻiga, e mafai e se tagata osofaʻi ona pasi le tau 00000177.0.0.1, lea, pe a siaki i totonu o le net.ParseCIDR(00000177.0.0.1/24) galuega, o le a faʻavasegaina 177.0.0.1/24, ae le o le 127.0.0.1/24. O le faʻafitauli e faʻaalia foi i le Kubernetes platform. O le faʻafitauli o loʻo faʻamautu ile Go release 1.16.3 ma le beta 1.17.

Faʻafitauli i totonu o faletusi fesoʻotaʻiga a Rust ma Go gagana e mafai ai ona e pasia le faʻamaoniga o tuatusi IP


puna: opennet.ru

Faaopoopo i ai se faamatalaga