CVE-2014-8090: Denial of Service Lain Ekspansi pada XML

Ditulis oleh usa tanggal 2014-11-13
Diterjemahkan oleh meisyal

Ekspansi entitas yang tidak dilarang dapat menyebabkan sebuah celah DoS pada REXML, seperti “Kerentanan DoS Ekspansi Entity pada REXML (Bom XML, CVE-2013-1821)” dan “CVE-2014-8080: Parameter Entity expansion DoS vulnerability in REXML”. Celah ini telah ditetapkan dalam CVE identifier CVE-2014-8090. Kami sangat merekomendasikan untuk memperbarui Ruby.

Detil

Ini adalah perbaikan tambahan untuk CVE-2013-1821 dan CVE-2014-8080. patches sebelumnya memperbaiki ekspansi rekursif di beberapa tempat dan jumlah dari ukuran Strings yang dibuat. Namun demikian, mereka tidak dapat mengambil akun resmi yang digunakan untuk ekspansi entitas. 100% utilitas CPU dapat terjadi sebagai hasil ekspansi rekursif dengan sebuah string kosong. Ketika membaca ujung teks dari sebuah dokumen XML, REXML parser dapat dipaksa mengalokasikan objek string yang sangat besar yang mana dapat mengonsumsi semua memori dalam sebuah mesin, menyebabkan sebuah denial of service.

Imbas tersebut akan terlihat dari kode berikut:

require 'rexml/document'

xml = <<XML
<!DOCTYPE root [
  # ENTITY expansion vector
]>
<cd></cd>
XML

p REXML::Document.new(xml)

Semua pengguna yang terkena imbas rilis ini seharusnya memperbarui atau menggunakan salah satu solusi di bawah ini segera.

Versi yang Terkena Imbas

  • Semua Ruby versi 1.9 hingga 1.9.3 patchlevel 551
  • Semua Ruby versi 2.0 hingga 2.0.0 patchlevel 598
  • Semua Ruby versi 2.1 hingga 2.1.5
  • sebelum revisi trunk 48402

Solusi

Jika Anda tidak dapat memperbarui Ruby, gunakan monkey patch di bawah ini sebagai solusi lain:

class REXML::Document
  def document
    self
  end
end

Credits

Terima kasih Tomas Hoger telah melaporkan masalah ini.

Histori

  • Semula dipublikasikan pada 2014-11-13 12:00:00 UTC

Berita Baru

Ruby 3.3.0-preview3 Dirilis

Kami dengan senang hati mengumumkan rilis dari Ruby 3.3.0-preview3. Ruby 3.3 menambahkan sebuah parser baru yang bernama Prism, menggunakan Lrama sebagai parser generator, menambahkan pure-Ruby...

Ditulis oleh naruse tanggal 2023-11-12

Arsip Sebelumnya...