Prototip kirlilik hatası Ember.js uygulamalarını XSS’ye maruz bıraktı


JavaScript çerçevesinde tespit edilen temizlenmemiş kullanıcı girişi riski

Node.js web uygulamaları oluşturmak için bir JavaScript çerçevesi olan Ember.js'deki bir hata, prototip bir kirlilik güvenlik açığı oluşturdu

Node.js web uygulamaları oluşturmak için bir JavaScript çerçevesi olan Ember.js’deki bir hata, saldırganların ana sunucuya karşı prototip kirlilik saldırıları düzenlemesine izin verdi.

Prototip kirlilik saldırıları, kritik nesnelerde genel değişiklikler yapmak için JavaScript’in dinamik özellik atama özelliklerinden yararlanır. Ember.js örneğinde, prototip kirliliği güvenlik açığı, saldırganların siteler arası komut dosyası çalıştırma (XSS) saldırıları gerçekleştirmesine ve kullanıcı bilgilerini çalmasına olanak sağlayabilir.

güvenilmeyen giriş

Böceği keşfeden güvenlik araştırmacısı Masato Kinugawa, ilk olarak başka bir soruşturma sırasında gördü.

Kinugawa, “Bahar 2021’de Google’ın sahip olduğu alanlardan birinde bir XSS hatası fark ettim ve bunu Google Bug Bounty Programı aracılığıyla bildirdim” dedi. Günlük Swig. “Ayrıntıları araştırırken, temel nedenin Ember.js çerçevesinde olduğunu fark ettim.”

Kinugawa’nın bulgularına göre, bir uygulama, Ember.js nesnelerinin bazı özellik ayar işlevlerine temizlenmemiş kullanıcı girdisi iletirse, prototip kirliliğine yol açabilir.

İLİŞKİLİ Prototip kirliliği: JavaScript uygulamalarını etkileyen tehlikeli ve yetersiz güvenlik açığı

Özünde bu, saldırganın, nesne prototipini geçmek ve diğer tüm nesnelerin türetildiği temel nesne dahil olmak üzere JavaScript programının diğer bölümlerinde değişiklik yapmak için özellik işlevini kullanabileceği anlamına gelir.

Prototip kirlilik hatası, kimlik bilgilerinin çalınması da dahil olmak üzere diğer kötü amaçlı faaliyetleri gerçekleştirmek için hedef uygulamadaki diğer güvenlik açıklarıyla potansiyel olarak zincirlenebilir.

Kusuru kötüye kullanmak için bir saldırganın, güvenlik açığı bulunan özellik ayarlayıcıya erişen bir komut dosyası gadget’ına ihtiyacı olacaktır. Kinugawa, “Google’ın hatası durumunda, uygulama reCAPTCHA komut dosyasını kullandığı için bir Google reCAPTCHA gadget’ı kullanabildim” dedi.

Özellik veya hata?

Nesne yapılarında ve prototiplerde dinamik değişiklikler yapabilme yeteneği, JavaScript’i esnek kılan özelliklerden biridir. Ancak bu, özellik değişikliklerinin, özellikle de değişiklikler kullanıcı girişi yoluyla yapıldığında, prototip kirliliği açıklarına neden olmasını önlemek zorunda olan geliştiriciler için de bir zorluk yaratır.

Ember, bir danışma belgesinde, “Derin mülkiyet zinciri oluşturma, bu API’lerin amaçlanan bir özelliği olsa ve bunlara güvenilmeyen girdilerin iletilmesi uygunsuz olsa da, bu davranışın artan bir güvenlik riski oluşturacak kadar şaşırtıcı olduğu konusunda hemfikiriz” dedi.

Çerçevenin yeni bir sürümü, önceden savunmasız işlevlerin nesne prototipinde değişiklik yapmasını açıkça engeller.

Prototip kirlilik hataları, geliştiriciler tarafından iyi anlaşılmadıkları için anlaşılması güç kalır. Kinugawa, yazılım geliştiricilerin programlarında ve kullandıkları kitaplıklarda benzer güvenlik açıklarını nasıl bulabileceklerine dair bazı ipuçları verdi.

“Bulduğum çoğu durumda, [prototype] URL parametreleri JavaScript nesnesine dönüştürülürken kirlilik oluştu,” dedi Kinugawa. “Dolayısıyla, bu tür bir hatayı bulmaya çalışan herkes, URL parametresinin işlenmesine dikkatlice bakarak onu bulabilmelidir.”

İLİŞKİLİ Tepki tabanlı açık kaynak çerçevesi Gatsby, Cloud Image CDN’de SSRF, XSS hatalarını yamalar



Source link