Heap Overflow dalam Floating Point Parsing (CVE-2013-4164)

Ada sebuah overflow dalam floating point number parsing di Ruby. Kerentanan ini telah ditetapkan identifier CVE CVE-2013-4164.

Rincian

Setiap kali string dikonversi ke floating point value, sebuah string yang secara khusus dibuat dapat menyebabkan heap overflow. Hal ini dapat menyebabkan denial of service attack melalui segmentation fault dan kemungkinan arbitrary code execution. Setiap program yang mengubah input dari sumber tidak diketahui ke floating point values (terutama umum ketika menerima JSON) rentan.

Kode yang rentan terlihat seperti ini:

untrusted_data.to_f

Tetapi setiap kode yang menghasilkan floating point values dari external data adalah rentan, seperti ini:

JSON.parse untrusted_data

Catat bahwa bug ini mirip dengan CVE-2009-0689.

Semua pengguna yang menjalankan rilis yang terdampak harus menatar ke versi FIXED dari Ruby.

Versi - versi terdampak

  • Semua Ruby 1.8 versions setelah Ruby 1.8.6 patchlevel 230
  • Semua Ruby 1.9 versions sebelum Ruby 1.9.3 patchlevel 484
  • Semua Ruby 2.0 versions sebelum Ruby 2.0.0 patchlevel 353
  • Semua Ruby 2.1 versions sebelum Ruby 2.1.0 preview2
  • sebelum trunk revision 43780

Solusi

Semua pengguna direkomendasikan untuk melakukan upgrade ke Ruby 1.9.3 patchlevel 484, Ruby 2.0.0 patchlevel 353 atau Ruby 2.1.0 preview2.

Harap dicatat bahwa seri Ruby 1.8 atau rilis sebelumnya sudah usang. Tidak ada rencana untuk merilis versi perbaikan untuk versi tersebut. Pengguna versi tersebut disarankan untuk melakukan upgrade segera mungkin karena kami tidak menjamin ketersediaan perbaikan keamanan yang berkelanjutan untuk versi yang tidak lagi didukung.

Kredit

Terima kasih untuk Charlie Somerville telah melaporkan masalah ini!

Sejarah

  • Penerbitan awal pada 2013-11-22 04:00:00 UTC
  • Penerbitan kedua pada 2013-11-22 06:46:00 UTC
  • Penerbitan ketiga pada 2013-11-22 22:46:00 UTC
  • Penerbitan keempat pada 2013-12-10 12:09:38 UTC