Kerentanan Cek Hostname Terlewati pada Klien SSL (CVE-2013-4073)

Sebuah kerentanan di klien SSL Ruby yang dapat memungkinkan Man-in-the-Middle Attack untuk men-spoof server SSL melalui sertifikat sah yang dikeluarkan oleh otoritas sertifikasi terpercaya (trusted certification authority).

Kerentanan ini telah ditetapkan dengan identifier CVE CVE-2013-4073.

Rangkuman

Klien SSL Ruby menerapkan pemeriksaan identitas hostname tapi tidak menangani hostname dalam sertifikat yang berisi null bytes dengan benar.

Rinci

OpenSSL::SSL.verify_certificate_identity mengimplementasikan pemeriksaan RFC2818 Server Identity untuk klien SSL Ruby tetapi tidak menangani hostname di ekstensi subjectAltName X509 yang mengandung null bytes dengan benar.

Kode yang ada di lib/openssl/ssl.rb menggunakan OpenSSL::X509::Extension#value untuk mengekstrak identitas dari subjectAltName. Extension#value bergantung pada fungsi OpenSSL X509V3_EXT_print() dan untuk dNSName dari subjectAltName, ia menggunakan sprintf() yang diketahui sebagai null byte unsafe. Sebagai hasilnya Extension#value mengembalikan ‘www.ruby-lang.org’ jika subjectAltName ‘www.ruby-lang.org\0.example.com’ dan OpenSSL::SSL.verify_certificate_identity dengan salah menidentifikasi bahwa sertifikat tersebut adalah untuk ‘www.ruby-lang.org’.

Ketika CA sebuah trust klien SSL memungkinkan untuk mengeluarkan sertifikat server yang memiliki byte null dalam subjectAltName, penyerang remote dapat memperoleh sertifikat untuk ‘www.ruby-lang.org\0.example.com’ dari CA untuk spoof ‘www.ruby-lang.org’ dan melakukan man-in-the-middle antara klien SSL Ruby dan SSL server.

Versi yang Terkena Dampak

  • Semua ruby versi 1.8 sebelum ruby 1.8.7 patchlevel 374
  • Semua ruby versi 1.9 sebelum ruby 1.9.3 patchlevel 448
  • Semua ruby versi 2.0 sebelum ruby 2.0.0 patchlevel 247
  • sebelum trunk revisi 41671

Solusi

Semua pengguna dianjurkan untuk meng-upgrade ke Ruby 2.0.0-p247, 1.9.3-p448 atau 1.8.7-p374.

Ucapan Terima Kasih

Kerentanan ini ditemukan oleh William (B.J.) Snow Orvis dan dikoordinasikan dengan security@ruby-lang.org oleh David Thiel dari iSEC Partners.

History

  • Originally published at 2013-06-27 11:00:00 (UTC)