Çekirdek kusuru, komutları yürütmek için şablon imza kontrollerini atlar


Çekirdekler

Açık kaynaklı güvenlik açığı tarayıcısı Nuclei’deki yeni bir güvenlik açığı, saldırganların imza doğrulamasını atlayarak yerel sistemlerde çalışan şablonlara kötü amaçlı kod sızdırmasına olanak tanıyabilir.

Nuclei, ProjectDiscovery tarafından oluşturulan ve web sitelerini güvenlik açıkları ve diğer zayıf noktalara karşı tarayan popüler bir açık kaynaklı güvenlik açığı tarayıcısıdır.

Proje, web sitelerini bilinen güvenlik açıkları, yanlış yapılandırmalar, açığa çıkan yapılandırma dosyaları, web kabukları ve arka kapılar açısından tarayan 10.000’den fazla YAML şablonundan oluşan şablon tabanlı bir tarama sistemi kullanıyor.

YAML şablonları aynı zamanda bir şablonun işlevselliğini artıran, bir aygıtta yerel olarak komutları veya komut dosyalarını yürütmek için kullanılabilecek bir kod protokolü de içerir.

Her şablon, Nuclei’nin şablonun kötü amaçlı kod içerecek şekilde değiştirilmediğini doğrulamak için kullandığı bir özet karması ile “imzalanır”.

Bu özet karması şablonların altına şu biçimde eklenir:

# digest: 

Kusur, Nuclei imza doğrulamasını atlıyor

Wiz’deki araştırmacılar tarafından CVE-2024-43405 olarak takip edilen ve bir şablon kötü amaçlı kod içerecek şekilde değiştirilse bile Nuclei’nin imza doğrulamasını atlayan yeni bir Nuclei güvenlik açığı keşfedildi.

Kusur, Go regex tabanlı imza doğrulamasından ve YAML ayrıştırıcısının imzayı doğrularken satır sonlarını nasıl işlediğinden kaynaklanıyor.

Bir imzayı doğrularken Go’nun doğrulama mantığı şunları dikkate alır: \r aynı çizginin bir parçası olarak. Ancak YAML ayrıştırıcısı bunu satır sonu olarak yorumluyor. Bu uyumsuzluk, saldırganların doğrulamayı atlayan ancak YAML ayrıştırıcısı tarafından işlendiğinde yine de yürütülen kötü amaçlı içerik eklemesine olanak tanır.

Diğer bir konu ise Nuclei’nin birden fazla şeyi nasıl ele aldığıdır. # digest: İmza satırları, süreç yalnızca # özetin bir şablonda ilk oluşumunu kontrol ettiğinden, şablonda daha sonra bulunan ek olanlar göz ardı edilir.

Bu durum, kötü amaçlı bir “kod” bölümü içeren ilk geçerli özetin ardından ek kötü amaçlı “# özet:” yükleri eklenerek kullanılabilir; bu bilgiler daha sonra şablon kullanıldığında enjekte edilir ve yürütülür.

Wiz araştırmacısı Guy Goldenberg, “Eşleşmeyen yeni satır yorumlarıyla ilgili bilgilerle donanmış olarak, Go’nun normal ifade uygulaması ile YAML ayrıştırıcısı arasındaki eşitsizlikten yararlanan bir şablon hazırladık” diye açıklıyor.

“\r’yi satır sonu olarak kullanarak, şablona imza doğrulama sürecinden kaçan ancak YAML yorumlayıcısı tarafından ayrıştırılıp yürütülen ikinci bir # özet: satırı ekleyebiliriz.”

Farklı ayrıştırıcıların bir Nuclei şablonunu nasıl ayrıştırdığına dair örnek
Farklı ayrıştırıcıların bir Nuclei şablonunu nasıl ayrıştırdığına dair örnek
Kaynak: Wiz

Wiz, 14 Ağustos 2024’te ProjectDiscovery’deki kusuru sorumlu bir şekilde açıkladı ve bu kusur, 4 Eylül’de Nuclei v3.3.2’de düzeltildi.

Nuclei’nin eski sürümlerini kullanıyorsanız, bu hatanın teknik ayrıntıları kamuya açıklandığı için en son sürümü güncellemeniz önemle tavsiye edilir.

Goldenberg ayrıca, kötü amaçlı şablonlardan yararlanma olasılığını önlemek için Nuclei’nin sanal bir makinede veya izole edilmiş bir ortamda kullanılmasını öneriyor.



Source link