WordPress 2.5 Güvenlik Açığı

WordPress'in geçtiğimiz günlerde yayınlanan son sürümü 2.5 üzerinde bir güvenlik açığı tespit edildi. WordPress kurulu bir sistemde kullanıcı adını değiştirme yetkisine sahip olan bir kullanıcı bu güvenlik açığı ile diğer kullanıcıların cookie(çerez)'lerine erişim sağlayabiliyor.

Güvenlik açığı WordPress 2.5'in cookie doğrulama sisteminin olmamasından kaynaklanmakta. WordPress'te cookie yapıları şu şekilde belirlenmiş.

"wordpress_".COOKIEHASH = USERNAME . "|" . EXPIRY_TIME . "|" . MAC

Burada,

COOKIEHASH: Site URL'sinin MD5 hash'i
USERNAME: Kayıtlı kullanıcı ismi
EXPIRY_TIME: Saniye cinsinden oturumun sonlandırılma süresi
MAC: HMAC-MD5

Sisteme giriş yaptığınızda sayfa şunu oluşturur,

Set-Cookie: wordpress_52440d615a927011d57374216b3ff789=
  admin%7C1209329209%7C7d5e9e67d8f74a2b657b2e63437a1241; path=/blog/

Bu sırada wp_generate_auth_cookie() fonksiyonu cookie'yi şu şekilde oluşturur,

$key = wp_hash($user->user_login . $expiration);
$hash = hash_hmac('md5', $user->user_login . $expiration, $key);
$cookie = $user->user_login . '|' . $expiration . '|' . $hash;

wp_validate_auth_cookie() fonksiyonu ise,

list($username, $expiration, $hmac) = explode('|', $cookie);
.
.
$key = wp_hash($username . $expiration);
$hash = hash_hmac('md5', $username . $expiration, $key);

if ( $hmac != $hash )
  return false;
$user = get_userdatabylogin($username);
.
.

Görüldüğü gibi bu fonksiyon kullanıcı adı, Mac ve zaman aşım süresini cookie'de ayrıştırmakta ve bunların hash'lerini alıp karşılaştırma yapmakta eğer değerler birbirini tutuyorsa giriş yapmanıza izin vermekte. Fakat HMAC kısmı için bir doğrulama yapmamakta.

Örnek Saldırı:
Örnek saldırıyı forum sayfalarımızda bulabilirsiniz.

Çözüm:
WordPress 2.5.1'e yükseltme yapınız. Ya da düzeltene kadar yeni kullanıcı kaydını kapatınız.

Referans:
http://www.cl.cam.ac.uk/~sjm217/advisories/wordpress-cookie-integrity.tx...

Telif Hakkı

Bu yazının telif hakkı, içeriğinde aksi belirtilmemişse yazarına aittir ©. Yazının izin alınmadan ya da kaynak gösterilmeden kopyalanması ve kullanılması 5846 sayılı Fikir ve Sanat Eserleri Yasasına göre suçtur (forum ve bloglar dahil olmak üzere). Telif haklarına aykırı bir durumla karşılaşırsanız lütfen site yetkililerine bildiriniz.