Kerentanan anu kapendak dina perpustakaan jaringan Rust and Go nyegah validasi IP

Anyar inpormasi ngeunaan kerentanan dileupaskeun anu aya di perpustakaan standar basa Karat sareng Pindah, anu mana patalina sareng mishandling alamat IP kalayan digit oktal dina fungsi analisis alamat.

Disebatkeun yén eKerentanan ieu ngamungkinkeun anjeun nyingkahan cek alamat anu sah sarengn aplikasi, contona, pikeun ngatur aksés ka alamat antar muka loopback atanapi subnét intranet nalika serangan spoofing paménta sisi server dilakukeun.

Kerentanan dina dua bahasa ieu String alamat IP gaduh réalisasi dina spésifikasi nol basis, kumargi anjeun dina tiori aranjeunna kedah ditapsirkeun salaku angka oktal, tapi masalah anu nyababkeun gangguan ieu nyaéta seueur perpustakaan henteu nganggap ieu sareng ngan ukur miceun nol, janten aranjeunna tungtungna ngubaran nilaina salaku angka desimal.

Salaku conto, pikeun ngartos kumaha alamat IP diinterpretasi dina bug ieu, nomer 0177 dina oktal nyaéta 127 dina decimal sareng dimana panyerang tiasa nyungkeun sumber anu nunjukkeun nilai "0177.0.0.1", anu, kumargi éta henteu dicandak salaku oktal, notasi decimal pikeun ieu nyaéta "127.0.0.1".

Kusabab kitu dina hal nganggo salah sahiji perpustakaan anu bermasalah, aplikasi henteu bakal mendakan kajantenan alamatna 0177.0.0.1 dina subnet 127.0.0.1, tapi nyatana, nalika ngirimkeun pamundut, alamat "0177.0.0.1" tiasa disebut anu kusabab salah tafsir, fungsi jaringan bakal ngolah ieu salaku 127.0.0.1. Nya kitu, aksés kana alamat intranet tiasa ditipu sareng diverifikasi ku netepkeun sababaraha rupa nilai, anu diserang bakal ngaevaluasi pikeun kamungkinan garapan.

Di sisi Karat, masalah éta kapendak janten standar perpustakaan standar "std :: net" sareng anu parantos katalog dina "CVE-2021-29922". Éta ngajelaskeun éta alamat IP perpustakaan ieu parser miceun enol payuneun nilaina alamatna, tapi ngan upami henteu langkung ti tilu digit ditetepkeun, contona, "0177.0.0.1" bakal diinterpretasi salaku nilai anu teu valid sareng hasil anu salah bakal dikembalikan salaku réspon.

Validasi input string octal lepat di perpustakaan "net" standar karat-lang ngamungkinkeun panyerang jauh anu teu asli pikeun ngalakukeun serangan SSRF, RFI, sareng LFI anu teu pasti kana seueur program anu gumantung kana karat-lang std :: net. The oktét tina alamat IP kénca dilucuti tinimbang dievaluasi salaku alamat IP anu valid.

Disebutkeun ogé yén aplikasi anu nganggo std :: net :: perpustakaan IpAddr nalika nguraikeun alamat anu ditangtoskeun ku pangguna berpotensi rentan ka serangan SSRF (server-request request spoofing), RFI (kaasup file jauh) sareng LFI (kaasup file lokal). Nya kitu, panyerang tiasa lebet 127.0.026.1, anu saleresna 127.0.22

Salaku conto, panyerang anu ngirim alamat IP kana aplikasi wéb anu dumasar kana std :: net :: IpAddr tiasa nyababkeun SSRF ku cara nuliskeun data input octal; Panarajang tiasa ngirim alamat IP anu tiasa dieksploitasi upami oktét gaduh 3 digit, kalayan oktét exploit minimum 08 anu nyababkeun panolakan jasa sareng oktét maksimal dieksploitasi 099 anu ogé ngabalukarkeun panolakan jasa. 

Upami anjeun hoyong terang langkung seueur ngeunaan kerentanan ieu dina Karat, anjeun tiasa parios detil na Dina tautan ieu. Éta ogé disebatkeun yén kerentanan dilereskeun dina cabang Karat 1.53.0.

Geuwat saatos kana masalah anu mangaruhan to Go, disebatkeun yén ieu tunduk kana perpustakaan standar «net» sareng éta parantos didaptarkeun dina CVE-2021-29923. Dina katerangan disebatkeun éta ngamungkinkeun panyerang jauh anu teu dioténtikasi pikeun ngalakukeun serangan SSRF, RFI sareng LFI teu ditangtoskeun dina seueur program anu gumantung kana golang internal net.ParseCIDR function. Oktét IP CIDR individu dilucuti tibatan meunteun éta salaku oktét IP anu sah.

Salaku conto, panyerang tiasa ngalirkeun nilai 00000177.0.0.1, anu, nalika diparios dina net. ParseCIDR function, bakal diébréhkeun salaku 177.0.0.1/24, sanés 127.0.0.1/24. Masalahna ogé manifests dirina dina platform Kubernetes. Kerentanan ieu dibereskeun dina versi Go 1.16.3 sareng versi béta 1.17.

Anjeun tiasa diajar langkung seueur ngeunaan éta ngeunaan kerentanan ieu Dina tautan ieu.


Eusi tulisan taat kana prinsip urang tina étika éditorial. Pikeun ngalaporkeun kasalahan klik di dieu.

Janten kahiji komen

Ninggalkeun koméntar anjeun

email alamat anjeun moal diterbitkeun. Widang diperlukeun téh ditandaan ku *

*

*

  1. Jawab data: Miguel Ángel Gatón
  2. Tujuan tina data: Kontrol SPAM, manajemén koméntar.
  3. Legitimasi: idin anjeun
  4. Komunikasi data: Data moal dikomunikasikan ka pihak katilu kacuali ku kawajiban hukum.
  5. Panyimpenan data: Basis data anu diayakeun ku Occentus Networks (EU)
  6. Hak: Iraha waé anjeun tiasa ngawatesan, cageur sareng mupus inpormasi anjeun.