Ditulis oleh mame tanggal 2021-11-15
Diterjemahkan oleh meisyal
Kami telah merilis versi date gem 3.2.1, 3.1.2, 3.0.2, dan 2.0.1 yang berisi sebuah perbaikan keamanan untuk regular expression denial of service vulnerability (ReDoS) pada date parsing method. Seorang penyerang dapat mengeksploitasi kerentanan ini sehingga menyebabkan sebuah serangan DoS yang efektif. Kerentanan ini telah ditetapkan dengan penanda CVE CVE-2021-41817.
Detail
Date’s parsing method termasuk Date.parse
menggunakan Regexps secara
internal, beberapa diantaranya rentan terhadap regular expression
denial of service. Aplikasi dan pustaka yang memakai method ini untuk
menerima masukan yang tidak terpercaya kemungkinan terimbas.
Perbaikan ini membatasi panjang masukan hingga 128 bytes secara default
ketimbang mengganti regexps. Hal ini disebabkan Date gem menggunakan banyak
Regexps dan mungkin ada kerentanan Regexps yang belum ditemukan. Untuk
penyesuaian, pengguna diperbolehkan untuk menghilangkan batasan ini dengan
melewatkan nilai nil
pada kata kunci limit
, seperti
Date.parse(str, limit: nil)
. Tetapi, catat bahwa metode ini mungkin akan
memakan waktu lama untuk mem-parsing.
Mohon perbarui date gem ke versi 3.2.1, 3.1.2, 3.0.2, dan 2.0.1, atau
setelahnya. Anda dapat menggunakan perintah gem update date
untuk
memperbaruinya. Jika Anda sedang menggunakan bundler, tambahkan
gem "date", ">= 3.2.1"
pada Gemfile
. Alternatif lain adalah memperbarui
Ruby ke 3.0.3, 2.7.5, 2.6.9, atau setelahnya.
Versi terimbas
- date gem 2.0.0 atau sebelumnya (yang di-bundle dengan rangkaian Ruby 2.6 sebelum Ruby 2.6.9)
- date gem 3.0.1 atau sebelumnya (yang di-bundle dengan rangkaian Ruby 2.7 sebelum Ruby 2.7.5)
- date gem 3.1.1 atau sebelumnya (yang di-bundle dengan rangkaian Ruby 3.0 sebelum Ruby 3.0.3)
- date gem 3.2.0 atau sebelumnya
Rujukan
Terima kasih kepada svalkanov yang telah menemukan kerentanan ini.
Riwayat
- Semula dipublikasikan pada 2021-11-15 08:00:00 (UTC)
- Sebut rilis Ruby terbaru pada 2021-11-24 13:20:00 (UTC)