Buffer overflow ing curl lan libcurl, diwujudake nalika ngakses liwat proxy SOCKS5

Kerentanan (CVE-2023-38545) wis diidentifikasi ing utilitas kanggo nampa lan ngirim data liwat jaringan curl lan perpustakaan libcurl, sing dikembangake kanthi paralel, sing bisa nyebabake kebanjiran buffer lan duweni potensi eksekusi kode penyerang ing sisih klien nalika diakses nggunakake utilitas curl utawa aplikasi nggunakake libcurl, menyang server HTTPS sing dikontrol dening panyerang. Masalah mung katon yen akses liwat proxy SOCKS5 diaktifake ing curl. Nalika ngakses langsung tanpa proxy, kerentanan ora katon. Kerentanan diatasi ing release curl 8.4.0. Peneliti keamanan sing nemokake bug kasebut nampa hadiah $4660 minangka bagean saka inisiatif Internet Bug Bounty Hackerone.

Kerentanan iki disebabake dening bug ing kode resolusi jeneng host sadurunge ngubungi proxy SOCKS5. Yen jeneng host dawane nganti 256 karakter, curl langsung ngirim jeneng kasebut menyang proxy SOCKS5 kanggo resolusi lokal. Yen jeneng host luwih dawa saka 255 karakter, bakal ganti menyang resolver lokal lan ngirim alamat sing wis ditemtokake menyang SOCKS5. Amarga bug ing kode kasebut, tandha sing nuduhake kabutuhan resolusi lokal bisa disetel kanthi salah sajrone negosiasi sambungan SOCKS5 sing alon, sing nyebabake jeneng host sing dawa ditulis menyang buffer sing dialokasikan kanggo panyimpenan. alamat IP utawa jeneng sing ora ngluwihi 255 karakter.

Pemilik situs sing diakses curl liwat proxy SOCKS5 bisa micu limpahan buffer sisih klien kanthi ngasilake kode pangalihan panyuwunan (HTTP 30x) lan nyetel header "Lokasi:" menyang URL kanthi jeneng host ing kisaran 16 munggah nganti 64 KB (16 KB minangka ukuran minimal sing dibutuhake kanggo kebanjiran buffer sing diparengake, lan 65 KB minangka dawa hostname maksimum sing diidini ing URL). Yen panyuwunan pangalihan diaktifake ing setelan libcurl lan proxy SOCKS5 sing digunakake cukup alon, banjur jeneng host sing dawa bakal ditulis menyang buffer cilik, kanthi ukuran sing luwih cilik.

Kerentanan utamane mengaruhi aplikasi adhedhasar libcurl lan katon ing utilitas curl mung nalika nggunakake opsi "--limit-rate" kanthi nilai kurang saka 65541 - libcurl kanthi standar nyedhiyakake buffer ukuran 16 KB, lan ing utilitas curl iku 100 KB, nanging iki owah-owahan ukuran gumantung ing Nilai saka parameter "-limit-rate".

Daniel Stenberg, penulis proyek kasebut, nyebutake manawa kerentanan kasebut tetep ora dideteksi sajrone 1315 dina. Uga ujar manawa 41% saka kerentanan sing diidentifikasi sadurunge ing curl bisa uga bisa dihindari yen curl wis ditulis ing basa sing aman memori, nanging ora ana rencana kanggo nulis ulang curl menyang basa liya ing mangsa ngarep. Minangka langkah kanggo nambah keamanan basis kode, disaranake nggedhekake alat kanggo nguji kode lan luwih aktif nggunakake dependensi sing ditulis ing basa pamrograman sing njamin operasi sing aman nganggo memori. Iki uga nimbang kemungkinan ngganti bagean curl kanthi opsi sing ditulis ing basa sing aman, kayata backend Hyper HTTP eksperimen sing ditindakake ing Rust.

Source: opennet.ru

Tuku hosting sing dipercaya kanggo situs kanthi proteksi DDoS, server VPS VDS 🔥 Tuku hosting situs web sing bisa dipercaya nganggo proteksi DDoS, server VPS VDS | ProHoster