BigSig, Mozilla NSS'de kod yürütülmesine izin verebilecek bir güvenlik açığı

hakkında haberler kritik bir güvenlik açığının belirlenmesi (zaten CVE-2021-43527 altında listelenmiştir) en kriptografik kitaplıklar seti NSS (Ağ güvenlik hizmetleri) Mozilla'dan kötü amaçlı kodun yürütülmesine neden olabilecek DER (Ayırt Edici Kodlama Kuralları) kullanılarak belirtilen DSA veya RSA-PSS dijital imzalarını işlerken.

sorun dijital imzaları işlemek için NSS kullanan uygulamalarda kendini gösterir CMS, S/MIME, PKCS#7 ve PKCS#12, veya dağıtımlarda sertifikaları doğrularken TLS, X.509, OCSP ve CRL. Güvenlik açığı, TLS, DTLS ve S/MIME desteğine sahip çeşitli istemci ve sunucu uygulamalarında, e-posta istemcilerinde ve dijital imzaları doğrulamak için NSS CERT_VerifyCertificate () çağrısını kullanan PDF görüntüleyicilerde ortaya çıkabilir.

LibreOffice, Evolution ve Evince, savunmasız uygulamalara örnek olarak belirtilmiştir.. Potansiyel olarak, sorun diğerlerinin yanı sıra Pidgin, Apache OpenOffice, Suricata, Curl gibi projeleri de etkileyebilir.

Aynı zamanda, güvenlik açığı Firefox, Thunderbird ve Tor Browser'da görünmüyor, doğrulama için ayrıca NSS'nin bir parçası olan ayrı bir mozilla :: pkix kitaplığı kullanan. bu Chrome tabanlı tarayıcılar (özellikle NSS ile derlenmemişlerse), 2015 yılına kadar NSS'yi kullanan, ancak daha sonra BoringSSL'ye taşınan, problemden etkilenmezler.

Güvenlik açığı, vfy_CreateContext içindeki sertifika doğrulama kodundaki bir hatadan kaynaklanmaktadır. secvfy.c dosyasının işlevi. Hata, hem istemci sertifikayı sunucudan okuduğunda kendini gösterir sunucu, istemcinin sertifikalarını işlerken olduğu gibi.

DER ile kodlanmış bir dijital imzayı doğrularken, NSS imzanın kodunu sabit boyutlu bir arabelleğe çözer ve bu arabelleği PKCS # 11 modülüne iletir.Son işlem sırasında, DSA ve RSA-PSS imzaları için boyut yanlış doğrulanır ve sonuç olarak bu, VFYContextStr yapısı için ayrılan arabelleğin taşmasına yol açar, eğer dijital imzanın boyutu 16384 biti aşarsa (2048 bayt arabellek için ayrılır, ancak imzanın daha büyük olabileceği doğrulanmaz).

Güvenlik açığını içeren kodun geçmişi 2003 yılına kadar uzanıyor., ancak 2012'de yeniden düzenlemeye kadar bir tehdit değildi. 2017'de RSA-PSS desteği uygulanırken aynı hata yapıldı. Bir saldırı gerçekleştirmek için, taşma, dijital imzanın geçerliliğinin doğrulanmasından önceki aşamada gerçekleştiğinden, gerekli verileri elde etmek için belirli anahtarların kaynak yoğun bir şekilde üretilmesi gerekli değildir. Verilerin sınır dışı kısmı, işlev işaretçileri içeren bir bellek alanına yazılır, bu da çalışan açıklardan yararlanmayı kolaylaştırır.

Güvenlik açığı Google Project Zero araştırmacıları tarafından tespit edildi yeni fuzzing test yöntemleriyle yapılan deneyler sırasında ve iyi test edilmiş bilinen bir projede önemsiz güvenlik açıklarının uzun süre nasıl tespit edilemediğinin iyi bir göstergesidir.

Gelince Sorunun fark edilmediği ana sorunlar uzun zamandır:

  • NSS sürücü kitaplığı ve bulanıklaştırma testleri bütünüyle değil, tek tek bileşen düzeyinde gerçekleştirilmiştir.
  • Örneğin, DER kodunu çözmek ve sertifikaları işlemek için kullanılan kod ayrı ayrı doğrulandı; Fuzzing sırasında, söz konusu güvenlik açığının ortaya çıkmasına neden olan bir sertifika alınabilirdi, ancak doğrulaması doğrulama koduna ulaşmadı ve sorun ortaya çıkmadı.
  • Bulanıklaştırma testleri sırasında, NSS'de bu tür sınırlamaların yokluğunda çıktının boyutuna (10,000 bayt) katı sınırlar getirildi (normal moddaki birçok yapı 10,000 bayttan daha büyük olabilir, bu nedenle sorunları tanımlamak için daha fazla girdi verisi gerekir) ). Tam doğrulama için limit, TLS'de izin verilen maksimum sertifika boyutuna karşılık gelen 2 24 -1 bayt (16 MB) olmalıdır.
  • Fuzzing testleri ile kod kapsamı hakkında yanlış anlama. Güvenlik açığı bulunan kod, aktif olarak test edildi, ancak gerekli giriş verilerini oluşturamayan fuzer'lar kullanıldı. Örneğin, fuzzer tls_server_target, sertifika doğrulama kodunun doğrulanmasını yalnızca TLS mesajları ve protokol durumu değişiklikleriyle sınırlayan, önceden tanımlanmış bir hazır sertifika seti kullandı.

Son olarak, BigSig kod adlı sorunun NSS 3.73 ve NSS ESR 3.68.1'de düzeltildiğini belirtmekte fayda var. ve paket biçimindeki çözümün güncellemeleri farklı dağıtımlarda zaten yayınlandı: Debian, RHEL, Ubuntu, SUSE, Arch Linux, Gentoo, FreeBSD, vb.

Daha fazlasını öğrenmek istiyorsanız, danışabilirsiniz. aşağıdaki bağlantı.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: AB Internet Networks 2008 SL
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.