Kritik Ruby-Saml güvenlik açıkları, saldırganların kimlik doğrulamasını atlamasına izin veriyor


Ruby-Saml Güvenlik Açıkları Bypass Kimlik Doğrulama

Ruby-SAML kütüphanesinde iki kritik kimlik doğrulama bypass güvenlik açıkları keşfedilmiştir ve potansiyel olarak çok sayıda web uygulamasını hesap devralma saldırılarına maruz bırakmıştır.

GitHub Güvenlik Laboratuvarı’ndan güvenlik araştırmacıları, saldırganların etkilenen sistemler içindeki herhangi bir kullanıcıyı taklit etmesine izin verebilecek 1.17.0’a kadar Ruby-SAML sürümlerini etkileyen ayrıştırıcı diferansiyel güvenlik açıklarını (CVE-2025-25291 ve CVE-2025-25292) tanımladılar.

Github, güvenlik açıklarının Ruby-Saml’in SAML yanıt imzası doğrulama sürecinde iki farklı XML ayrıştırıcısı (REXML ve Nokogiri) kullanımından kaynaklandığını bildiriyor.

Bu çift paralı yaklaşım, ayrıştırıcıların aynı XML belgesini farklı yorumladığı ve saldırganların doğrulama kontrollerini manipüle etmesine izin verdiği kritik bir güvenlik kusuru oluşturur.

Etkilenen kodda, Ruby-SAML imza öğesini ve imzaValue’yi çıkarmak için Rexml kullanırken, Nokogiri imza öğesini çıkarmak ve kanonikleştirmek için kullanılır.

Kritik Ruby-Saml güvenlik açıkları

Bu iki işlem arasındaki kopukluk, sömürülebilir bir durum yaratır. SAML yanıtlarını doğrularken, kütüphane iki kritik kontrol gerçekleştirir: hesaplanan bir karma bir sindirimle karşılaştırılması ve imza öğesinin imza değerine karşı doğrulanması. Her iki güvenlik açıkının özeti aşağıda verilmiştir:

Risk faktörleriDetaylar
Etkilenen ürünlerRuby-Saml <1.12.4 ve ≥ 1.13.0, <1.18.0; Omniauth-Saml <2.2.2, <1.10.5
DarbeKimlik Doğrulama Bypass; Hesap ele geçirme
Önkoşuldan istismarHedef kuruluşun anahtarıyla oluşturulan tek bir geçerli imzanın bulundurulması; Makinatif olmayan bir kullanıcının iddiasından veya herkese açık olarak erişilebilir IDP meta verilerinden elde edilebilir
CVSS 3.1 puanı8.8 (Yüksek)

Araştırmacılar, bir saldırganın biri Rexml ve diğeri Nokogiri tarafından görülebilen iki farklı imza unsuru içeren kötü niyetli bir SAML yanıtı oluşturabileceğini keşfettiler. REXML ile imza öğeleri için ilk sorgular xml_security.rb içindeki kod:

Daha sonra, Nokogiri’yi kullanarak tekrar sorgular:

Ayrıştırıcı farklılıkları nedeniyle, bu sorgular aynı belgeden farklı öğeleri döndürebilir.

Bir saldırgan, aynı zamanda hesaplanan sindirimine kıyasla aynı anda fabrikasyon bir iddiaya sahipken, Meşru bir imzaya karşı geçerli bir imzalamanın doğrulanmasını sağlayarak bunu kullanır.

Saldırı Senaryosu

Güvenlik etkisi şiddetlidir. Hedef kuruluşun anahtarıyla oluşturulan geçerli bir imzaya sahip bir saldırgan, herhangi bir kullanıcı için SAML iddiaları oluşturabilir.

Bu imza, ayrıcalıksız bir kullanıcıya ait meşru bir SAML yanıtından veya bazı durumlarda, bir SAML kimlik sağlayıcısının halka açık imzalı meta verilerinden bile gelebilir.

Örneğin, bir saldırgan, sadece Nokogiri tarafından görülebilecek bir durum kadrosu öğesinde gizlenmiş ek bir imza öğesi içeren kötü niyetli bir SAML yanıtı oluşturabilir.

Bu teknik, karma doğrulamayı imza doğrulamasından etkili bir şekilde ayırır ve saldırganların kimlik doğrulama mekanizmalarını atlamasına ve korunan kaynaklara yetkisiz erişim kazanmasına izin verir.

Güvenlik açıkları, GitLab dahil Ruby-SAML kullanılarak popüler projelerde doğrulanmıştır. Github Güvenlik Laboratuvarı, Gitlab’ın güvenlik ekibine kullanıcılarını potansiyel saldırılara karşı korumaları için bildirdi

Hafifletme

Ruby-SAML kullanan kuruluşlar derhal hem CVE-2025-25291 hem de CVE-2025-25292 için düzeltmeler içeren 1.18.0 sürümüne güncellemelidir.

Ayrıca, Omniauth-SAML gibi Ruby-SAML’den yararlanan kütüphanelere yapılan referanslar, Ruby-SAML’nin sabit sürümüne başvuran sürümlere güncellenmelidir.

Geçici hafifletmeler uygulayan geliştiriciler için, Nokogiri ayrıştırma hatalarını kontrol etmek bazı sömürü tekniklerini önlemeye yardımcı olabilir:

Ancak, bu tam bir çözüm değildir ve sabit sürüme güncelleme önerilen yaklaşım olmaya devam etmektedir.

Güvenlik açıkları, Ruby-SAML kütüphanesinin güvenliğini değerlendirmek için GitHub tarafından başlatılan özel bir hata ödül katılımı ile keşfedildi. Hem “Ahacker1” olarak tanımlanan bir hata ödül katılımcısı hem de GitHub Güvenlik Laboratuvarı araştırmacıları ayrıştırıcı diferansiyel sorunlarını bağımsız olarak tanımladı.

Ruby-Saml, Sixto Martín’in bakımı, düzeltmeleri geliştirmek ve serbest bırakmak için güvenlik araştırmacılarıyla birlikte çalıştı.

Güvenilir bir uzlaşma göstergesi tanımlanmamıştır, bu da kuruluşların uygulamalarını proaktif olarak güncellemelerini ve şüpheli SAML tabanlı kimlik doğrulama girişimlerini izlemelerini çok önemli hale getirmiştir.

Are you from SOC/DFIR Teams? – Analyse Malware Incidents & get live Access with ANY.RUN -> Start Now for Free.



Source link