
Popüler bir JavaScript DOM uygulaması olan Happy DOM’da v19’a kadar olan sürümleri etkileyen önemli bir güvenlik açığı keşfedildi.
Bu güvenlik açığı, sistemleri Uzaktan Kod Yürütme (RCE) saldırıları riskine sokuyor ve potansiyel olarak paketin haftalık 2,7 milyon kullanıcısını etkiliyor.
Bu kusur, Happy DOM tarafından kullanılan Node.js VM Bağlamının, güvenilmeyen kodun kaçmasına ve temeldeki sistemin işlevlerine erişmesine olanak tanıyan tamamen yalıtılmış bir ortam olmaması nedeniyle ortaya çıkıyor.
Birincil sorun, Happy DOM’da JavaScript değerlendirmesinin varsayılan olarak etkinleştirilmiş olmasıdır; bu, kitaplığı kullanan tüm geliştiriciler tarafından anlaşılamayabilecek bir ayrıntıdır.
Bu varsayılan yapılandırma, ortam güvenilmeyen kod çalıştırdığında bir güvenlik riski haline gelir. Bir saldırgan, süreç düzeyine erişmek için yapıcı zincirinden geçen kötü amaçlı JavaScript oluşturabilir Function
yapıcı.
Bu, kodu amaçlanan korumalı alan ortamının dışında yürütmelerine olanak tanıyarak tam bir VM kaçışına yol açar.
CommonJS veya ESM’de kullanılan modül sisteminin türü, saldırganın kontrolünün kapsamını belirler. CommonJS ortamında bir saldırgan, require()
Node.js modüllerini yüklemelerine ve yetkisiz eylemler gerçekleştirmelerine olanak tanıyan işlev.
Potansiyel Saldırı Senaryoları
Bu güvenlik açığının sonuçları, özellikle Sunucu Tarafı İşleme (SSR) kullanan uygulamalar veya harici içeriği işleyen test çerçeveleri için geniş kapsamlıdır.
Bir saldırgan, kullanıcı tarafından kontrol edilen HTML’ye kötü amaçlı bir komut dosyası enjekte edebilir ve bu kod daha sonra sunucuda çalıştırılabilir. Başarılı bir şekilde kullanılması birçok zarar verici sonuca yol açabilir:
- Veri Sızıntısı: Ortam değişkenleri, yapılandırma dosyaları ve diğer sırlar gibi hassas bilgilere erişim kazanmak.
- Yanal Hareket: Diğer dahili sistemlere bağlanmak için ağ erişimini kullanma. Happy DOM’un bazı ağ korumaları olsa da, güvenliği ihlal edilmiş bir süreç bunları atlayabilir.
- Kod Yürütme: Sunucuda isteğe bağlı komutları çalıştırmak için alt süreç erişiminin sağlanması.
- Kalıcılık: Güvenliği ihlal edilen sistemde uzun süreli varlığı sürdürmek için dosya sistemini değiştirmek.
Azaltmalar
Happy DOM geliştiricileri bu güvenlik açığını gidermek için yamalı bir sürüm yayınladı. Kullanıcıların sistemlerini korumak için derhal harekete geçmeleri önemle tavsiye edilir.
Önerilen eylem şekli Happy DOM v20 veya daha yeni bir sürüme güncelleme yapmaktır. Bu güncellenmiş sürüm, varsayılan olarak JavaScript değerlendirmesini devre dışı bırakır ve güvenli olmayan bir ortamda etkinleştirilmesi durumunda bir uyarı içerir.
JavaScript değerlendirmesi gerektiren kullanıcılar için Node.js’yi aşağıdakilerle çalıştırmak çok önemlidir: --disallow-code-generation-from-strings
bayrak.
Bu ayar aşağıdakilerin kullanılmasını engeller: eval()
Ve Function()
süreç düzeyinde, VM’nin kaçışına izin veren boşluğun kapatılması.
Anında güncelleme mümkün değilse, işlenen içerik tamamen güvenilir bir kaynaktan gelmediği sürece geliştiricilerin JavaScript değerlendirmesini manuel olarak devre dışı bırakması gerekir.
Günlük siber güvenlik güncellemeleri için bizi Google Haberler, LinkedIn ve X’te takip edin. Hikayelerinizi öne çıkarmak için bizimle iletişime geçin.