Kerentanan ing perpustakaan jaringan basa Rust lan Go sing ngidini sampeyan ngliwati verifikasi alamat IP

Kerentanan sing ana gandhengane karo pangolahan alamat IP sing ora bener kanthi digit oktal ing fungsi parsing alamat wis diidentifikasi ing perpustakaan standar basa Rust and Go. Kerentanan kasebut ngidini sampeyan ngliwati mriksa alamat sing bener ing aplikasi, contone, kanggo ngatur akses menyang alamat antarmuka loopback (127.xxx) utawa subnet intranet nalika nindakake serangan SSRF (Pemalsuan panyuwunan sisih server). Kerentanan nerusake siklus masalah sing sadurunge diidentifikasi ing perpustakaan node-netmask (JavaScript, CVE-2021-28918, CVE-2021-29418), private-ip (JavaScript, CVE-2020-28360), ipaddress (Python, CVE- 2021-29921 ), Data :: Validasi :: IP (Perl, CVE-2021-29662) lan Net :: Netmask (Perl, CVE-2021-29424).

Miturut spesifikasi, nilai string alamat IP sing diwiwiti karo nol kudu diinterpretasikake minangka angka oktal, nanging akeh perpustakaan ora nganggep iki lan mung mbuwang nol kasebut, nganggep nilai kasebut minangka angka desimal. Contone, angka 0177 ing octal padha karo 127 ing desimal. Penyerang bisa njaluk sumber daya kanthi nemtokake nilai "0177.0.0.1", sing ing notasi desimal cocog karo "127.0.0.1". Yen perpustakaan masalah digunakake, aplikasi ora bakal ndeteksi yen alamat 0177.0.0.1 ana ing subnet 127.0.0.1/8, nanging nyatane, nalika ngirim panjalukan, bisa ngakses alamat "0177.0.0.1". fungsi jaringan bakal diproses minangka 127.0.0.1. Kanthi cara sing padha, sampeyan bisa ngapusi mriksa akses menyang alamat intranet kanthi nemtokake nilai kaya "012.0.0.1" (padha karo "10.0.0.1").

Ing Rust, perpustakaan standar "std:: net" kena pengaruh masalah (CVE-2021-29922). Parser alamat IP perpustakaan iki mbuwang nol sadurunge nilai ing alamat kasebut, nanging mung yen ora luwih saka telung digit sing ditemtokake, contone, "0177.0.0.1" bakal dianggep minangka nilai sing ora bener, lan asil sing ora bener. bakal bali kanggo nanggepi 010.8.8.8 lan 127.0.026.1. Aplikasi sing nggunakake std :: net :: IpAddr nalika njlentrehake alamat sing ditemtokake pangguna duweni potensi rentan kanggo serangan SSRF (Pemalsuan panyuwunan sisih server), RFI (Remote File Inclusion) lan LFI (Local File Inclusion). Kerentanan kasebut tetep ing cabang Rust 1.53.0.

Kerentanan ing perpustakaan jaringan basa Rust lan Go sing ngidini sampeyan ngliwati verifikasi alamat IP

Ing Go, perpustakaan standar "net" kena pengaruh (CVE-2021-29923). Fungsi net.ParseCIDR dibangun ing skips anjog nul sadurunge nomer octal tinimbang ngolah mau. Contone, penyerang bisa ngliwati nilai 00000177.0.0.1, sing nalika dicenthang ing fungsi net.ParseCIDR(00000177.0.0.1/24), bakal diurai minangka 177.0.0.1/24, lan ora 127.0.0.1/24. Masalah kasebut uga katon ing platform Kubernetes. Kerentanan diatasi ing Go release 1.16.3 lan beta 1.17.

Kerentanan ing perpustakaan jaringan basa Rust lan Go sing ngidini sampeyan ngliwati verifikasi alamat IP


Source: opennet.ru

Add a comment