XML Signature Wrapping: Moldova'nın MPass SAML Kütüphanesindeki Kimlik Doğrulama Açığı
Moldova'nın devlet dijital kimlik sistemi MPass'ı kullanan ASP.NET Core uygulamalarında ciddi bir güvenlik açığı tespit edildi. Egov.Integrations.MPass.Saml kütüphanesinin 10.0.4 sürümüne kadar, SAML 2.0 yanıtlarındaki imzaları yanlış doğruluyordu.
Sorun şu: kütüphane, imzalı XML öğesini yükleyip `CheckSignature()` metoduyla referansların geçerli olup olmadığını kontrol ediyordu. Ancak bu referanslar, uygulamanın gerçekten okuduğu yanıt kökü öğesiyle hiçbir şekilde bağlanmıyordu., geçerli bir MPass mesajı elde eden saldırgan, imzalı kısmı başka bir yere taşıyıp istediği kullanıcı bilgisini kök öğeye yazabiliyordu, ve imza doğrulamasını yine de geçerdi. Böylece herhangi bir kullanıcı olarak sisteme giriş yapabiliyordu.
Bu, CWE-347 (Kriptografik İmza Doğrulaması Hatası) kategorisine giren bir imza taklit saldırısıydı. Sürüm 10.0.4 ve sonrasında eksik kontrol eklendi: imzalı referans sayısı tam olarak bir olmalı ve URI'si kök öğenin kimliğine eşit olmalı. 8.0.53, 8.0.56 ve 10.0.2 sürümleri etkileniyordu. Açığı bulan Serghei Zagaiciuc'a teşekkürler.
Eğer MPass kullanan bir ASP.NET Core projen varsa, kütüphaneyi 10.0.4 veya üstüne güncellemeyi hemen yap. XML imza işlemleriyle çalışıyorsan, referansların imzalanan içerikle doğrudan bağlı olduğundan emin ol, sadece matematiksel geçerlilik yetmez.
0 yorum