Ruby 1.9.1 rilis!

Ruby 1.9.1 rilis. Ini adalah rilis stabil pertama dari Ruby Seri 1.9.

Ruby 1.9 modern, lebih cepat, dengan sintaks jelas, multilingualized, yang lebih ditingkatkan kualitasnya di versi Ruby kali ini.

Seri Ruby 1.8 telah digunakan sejak 2003 dan banyak produk yang dilahirkan dengan Ruby 1.8.

Saat ini, seri Ruby 1.9 mulai seperti sejarah yang seri Ruby 1.8 dahulu kala.

Perlu diketahui bahwa Ruby 1.8.8 masih akan dirilis tahun ini.

Anda dapat membaca tentang perubahan besar sejak 1.8.7 disini

7 bug telah diperbaiki sejak Ruby 1.9.1 RC2.

Jika anda menemukan bug atau ada masalah, silakan laporkan dengan menggunakan sistem pelacakan masalah resmi.

Download dari

Artikel Selengkapnya…

DoS vulnerability di REXML

Terdapat DoS vulnerability di library REXML yang digunakan oleh Rails untuk memparse request XML yang datang. Rentan masalah ini biasa disebut sebagai teknik serangan "XML entity explosion" yang bisa digunakan secara remote untuk membuat aplikasi apa saja tidak bisa memparse XML yang sudah disediakan oleh user. Kebanyakan aplikasi Rails rentan dengan serangan ini.

Akibat

Penyerang dapat melakuka denial of service yang menyebabkan REXML memparse dokumen yang berisikan entitas bersarang rekursif seperti:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE member [
  <!ENTITY a "&b;&b;&b;&b;&b;&b;&b;&b;&b;&b;">
  <!ENTITY b "&c;&c;&c;&c;&c;&c;&c;&c;&c;&c;">
  <!ENTITY c "&d;&d;&d;&d;&d;&d;&d;&d;&d;&d;">
  <!ENTITY d "&e;&e;&e;&e;&e;&e;&e;&e;&e;&e;">
  <!ENTITY e "&f;&f;&f;&f;&f;&f;&f;&f;&f;&f;">
  <!ENTITY f "&g;&g;&g;&g;&g;&g;&g;&g;&g;&g;">
  <!ENTITY g "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx">
]>
<member>
&a;
</member>

Versi Vulnerable

seri 1.8
  • 1.8.6-p287 dan semua versi sebelumnya
  • 1.8.7-p72 dan semua versi sebelumnya
seri 1.9
  • semua versi

Solusi

Silakan mendownload monkey patch berikut untuk membenahi masalah ini.

http://www.ruby-lang.org/security/20080823rexml/rexml-expansion-fix.rb

Kemudian benahi aplikasi untuk meload rexml-expansion-fix.rb sebelum menggunakan REXML.

require "rexml-expansion-fix"
...
doc = REXML::Document.new(str)
...

Kalau Anda memiliki aplikasi Rails, copy file rexml-expansion-fix.rb ke direktori yang berada di load path (misalkan di RAILS_ROOT/lib/), dan tambahkan baris-baris kode berikut ini ke config/environment.rb.

require "rexml-expansion-fix"

Kalau aplikasi Anda menggunakan Rails 2.1 atau lebih baru, Anda bisa dengan mudah mengcopy file rexml-expansion-fix.rb ke dalam direktori RAILS_ROOT/config/initializers dan file monkey patch tersebut akan dipanggil dan disertakan secara otomatis.

Secara default, batas XML entity expansion adalah 10000. Anda bisa menggantinya dengan cara mengubah REXML::Document.entity_expansion_limit. Misalkan:

REXML::Document.entity_expansion_limit = 1000

Pembenahan ini akan tersedia sebagai gem dan digunakan di rails versi berikutnya, tetapi pengguna Ruby termasuk aplikasi terkait (seperti Rails) seharusnya mengambil langkah preventif sesegera mungkin untuk membenahi aplikasinya.

Kredit

Kredit untuk Luka Treiber dan Mitja Kolsek dari ACROS Security yang telah membeberkan rahasia sekuriti ini ke Tim Sekuriti Ruby dan Rails.

Kredit untuk Michael Koziarski dari Tim Utama Rails yang telah membuatkan monkey patch untuk membenahi vulnerability masalah keamanan ini.

Artikel Selengkapnya…

Berita Lain

Arsip Sebelumnya…

Tertarik dengan Ruby?

Anda ingin tahu lebih lanjut tentang Ruby? Bergabunglah dengan milis id-ruby atau silakan isi form di bawah ini:

Bergabung dengan id-ruby
Layanan dari tech.groups.yahoo.com