2 poin oleh GN⁺ 2023-10-12 | 1 komentar | Bagikan ke WhatsApp
  • Artikel tentang CVE-2023-38545, masalah keamanan penting yang ditemukan di curl 8.4.0, yang dianggap sebagai masalah keamanan paling serius di curl dalam waktu yang lama
  • Masalahnya adalah heap overflow, yang terjadi karena cacat pada fungsi yang terhubung ke proksi SOCKS5
  • Masalah ini diperkenalkan pada awal 2020 ketika fungsi tersebut diubah dari pemanggilan blocking menjadi state machine non-blocking, yang dilakukan untuk meningkatkan kinerja transfer paralel dalam jumlah besar melalui SOCKS5
  • Cacatnya ada pada status INIT di state machine, tempat variabel lokal disetel untuk menentukan apakah curl akan me-resolve host atau meneruskan nama ke proksi. Jika nama host terlalu panjang, kode akan beralih ke mode resolusi lokal, yang dapat menyebabkan memory overflow jika nama host lebih panjang daripada buffer target
  • Overflow dapat terjadi jika ukuran buffer diatur lebih kecil dari 65541 byte dan nama host lebih panjang daripada ukuran buffer. Ini mengharuskan pelaku jahat memasukkan nama host yang sangat besar ke dalam rumus untuk memicu cacat tersebut
  • Penyerang yang mengendalikan server HTTPS yang diakses klien pengguna libcurl melalui proksi SOCKS5 dapat mengembalikan redirect yang dimanipulasi ke aplikasi melalui respons HTTP 30x untuk memicu heap buffer overflow
  • Masalah ini diperbaiki di curl 8.4.0 dengan membuat curl mengembalikan error jika nama host terlalu panjang, alih-alih beralih dari resolusi jarak jauh ke resolusi lokal. Test case khusus untuk skenario ini juga ditambahkan
  • Penulis mengakui bahwa cacat ini tidak akan terjadi jika curl ditulis dalam bahasa yang aman memori alih-alih C, tetapi menyatakan bahwa porting curl ke bahasa lain saat ini tidak direncanakan
  • Penulis menyarankan bahwa mengizinkan, menggunakan, dan mendukung lebih banyak dependensi yang ditulis dalam bahasa aman memori adalah pendekatan yang layak, dan secara bertahap mungkin dapat mengganti sebagian curl
  • Penulis mengakui kesalahan dan meminta maaf, serta menyatakan bahwa cacat ini bisa dideteksi dengan rangkaian pengujian yang lebih baik. Ia juga menyinggung static code analyzer yang gagal menemukan masalah pada fungsi ini
  • Penulis menyimpulkan bahwa merilis heap overflow dalam kode yang terpasang di lebih dari 20 miliar instance bukanlah pengalaman yang direkomendasikan

1 komentar

 
GN⁺ 2023-10-12
Komentar Hacker News
  • Artikel tentang masalah heap overflow pada pustaka Curl, yang digunakan di banyak perangkat dan sebagian besar ditulis oleh satu orang.
  • Daniel, penulis Curl, meminta maaf atas kesalahan yang disebabkan oleh cacat dalam kode yang tidak ditemukan selama 1315 hari.
  • Artikel tersebut menyarankan bahwa jika Curl ditulis dengan bahasa yang aman terhadap memori alih-alih C, masalah keamanan memori mungkin bisa dihindari.
  • Penulis mempertimbangkan kemungkinan mengganti sebagian Curl secara bertahap dengan bahasa yang lebih aman terhadap memori, tetapi mengakui lambatnya kemajuan pengembangan semacam itu.
  • Penulis mengklaim bahwa 41% dari kerentanan keamanan Curl dapat dihindari dengan bahasa yang aman terhadap memori.
  • Artikel ini diakui karena penulisannya yang jelas dan jujur dalam menjelaskan logika serta sudut pandang di balik masalah tersebut.
  • Beberapa komentar mempertanyakan tingkat keparahan masalah ini, dengan menyatakan bahwa vektor serangannya sangat kecil dan memerlukan kondisi yang sangat spesifik untuk dapat dieksploitasi.
  • Salah satu komentar mengkritik bagian kode yang dapat membocorkan identitas pengguna melalui DNS kepada orang-orang yang menggunakan alat anti-sensor.
  • Komentar lain menunjukkan bahwa penulis mengabaikan batasan hostname DNS yang ditetapkan dalam RFC1123, dan hal ini mungkin turut berkontribusi pada masalah tersebut.
  • Disebutkan bahwa pembaruan keamanan terbaru Windows 10 tidak menyertakan versi Curl yang baru.