CVE-2021-41817: Kerentanan Regular Expression Denial of Service dari Date Parsing Method

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)