Accounts-2fa paketinde NoSQL Injection | tarafından Denilson Silva

Accounts-2fa paketinde NoSQL Injection |  tarafından Denilson Silva

En yeni çekirdek paketi olan hesaplar-2fa’yı etkileyen bir güvenlik hatasıyla ilgilenmeniz gerekiyor.

Halihazırda bu paketi kullanan Meteor geliştiricileri, yakın zamanda keşfedilen bir güvenlik açığının farkında olmalıdır. Bu yalnızca paketi Meteor 2.7 ile kullanan uygulamalar için geçerlidir ve 2.7.1’de düzeltilmiştir. Ayrıca, yalnızca 2FA’yı etkinleştirmiş olan kullanıcılar bu güvenlik açığından etkilenebilir.

Tanım

Temel geliştiricilerimizden biri, Zodernfonksiyonda bir NoSQL Enjeksiyon sorunu buldu ve bildirdi .has2faEnabled, paketin ortaya çıkardığı yeni yöntemlerden biri accounts-2fa. bu fonksiyon Alınan parametre olarak herhangi bir şey ve onu kullanıcı koleksiyonunda bir sorgu yapmak için kullandı; bu, verilerin çıkarılabileceği anlamına gelir, ancak yalnızca 2FA etkinleştirilmiş kullanıcılar için.

Doğrulama

Güvenlik açığı, herhangi bir kullanıcı için 2FA’nın etkin olup olmadığını kontrol edebilmek, 2FA’yı etkinleştirmiş tüm kullanıcıların bir listesini almak, 2fa’yı etkinleştirmişlerse bir kullanıcının belgesinden veri almak veya bir hizmet reddi saldırısı yapmak gibi şeylere izin verir. Mongo veritabanı.

Bu nedenle, kontrol etmek isteyebileceğiniz ilk şey, veritabanınızda 2FA’nın etkin olduğu herhangi bir kullanıcı olup olmadığıdır. Bu sorgu şu kullanıcıları getirmelidir:

db.users.find({ "services.twoFactorAuthentication.type": "otp" })

Bu sorgu hiçbir şey döndürmezse endişelenmenize gerek yok. sadece şuraya git Çözümü uygulamanıza uygulama Bölüm.

Ancak olması durumunda, güvenlik açığından yararlanılıp yararlanılmadığını kontrol etmek isteyebilirsiniz. Bunu yapmanın bir yolu, yöntemin olup olmadığını doğrulamaktır. has2faEnabled çok sayıda çağrıldı. Herhangi bir bilgiyi çıkarmak için, bu yöntemin birçok kez çağrılması gerekir.

Çözüm

Bunun çözümü oldukça basitti. Bu işlevin her zaman oturum açmış bir kullanıcıyla kullanılması amaçlandığından, tek yapmamız gereken bir seçici almayı bırakıp kullanmaktı. Meteor.user() yerine.

Çözümü uygulamanıza uygulama

Halihazırda bu paketi kullanıyorsanız, Meteor sürümünüzü aşağıdakilerle 2.7.1’e güncellediğinizden emin olun. meteor update --release 2.7.1. Paketin sürümleri şimdi 2.0.1 olmalıdır. bunu kontrol edebilirsin .meteor/versions.

Kredi

Meteor, güvenlik açıklarının sorumlu bir şekilde açıklanmasına inanır. Güvenlik açığı ayrıntılarını bize özel olarak bildiren güvenlik araştırmacılarının sıkı çalışmasına saygı duyuyoruz ve güvenlik açıklarını herkese açık olarak açıklamadan önce ele almak ve çözmek için bize zaman ayırdıkları için teşekkür ederiz.

Bu güvenlik açığının keşfedilmesi için kredi şuraya gider: Zodernbu sorunu Meteor’a kim bildirdi.

Lütfen iletişime geçin güvenlik@meteor.com Meteor’daki bir güvenlik açığını bildirmek için.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.