Formbricks İmza Doğrulama Kalıp Saldırganların Kullanıcı Şifrelerini Sıfırlamasına İzin Verir


Açık Kaynak Formbricks Deneyimi Yönetimi Araç Kutusu’ndaki kritik bir güvenlik açığı, saldırganların herhangi bir kullanıcının şifresini yetkilendirmeden sıfırlamasına olanak tanır.

Üç gün önce bakımcı Mattinannt tarafından danışma GHSA-729-Q9PV-J6P4 olarak yayınlanan kusur, 4.0.1’den önce Formbricks sürümlerinde eksik JWT imza doğrulamasından kaynaklanmaktadır.

Bir saldırgan geçerli bir kullanıcının dahili tanımlayıcısını öğrenirse, bir jeton oluşturabilir ve bir şifre sıfırlamasını zorlayarak gizlilik ve bütünlük için ciddi bir risk oluşturabilirler.

Güvenlik Açığı Genel Bakış

Formbricks, şifre sıfırlama ve e -posta doğrulama isteklerini doğrulamak için JSON Web Tokens (JWTS) kullanır. Bununla birlikte, jeton doğrulama rutini, imza, son kullanma, ihraççı veya kitleyi doğrulamadan JWT yükünü kodunu çözer.

CVE kimliği Tanım Etkilenen sürümler Şiddet CVSS V3.1 Taban Puanı
CVE-2025-59934 Parola sıfırlama rutininde JWT imzasının eksik doğrulaması. <4.0.1 Eleştirel 9.8 (AV: N/AC: L/PR: N/UI: N/S: U/C: H/I: H/A: L)

Özellikle, Apps/Web/lib/jwt.ts’teki VerifyToken işlevi, JWT.Verify yerine JWT.Decode’a dayanır.

  Şifre zorla yenisine değiştirildi.
Şifre zorla yeniye değiştirildi

Bu gözetim, saldırganların bir ALG ile jeton üretmesini sağlar: “Yok” başlık ve herhangi bir kullanıcının kimliğini içeren keyfi yükler.

Kavram kanıtı

  1. Bir saldırgan kurbanın kullanıcı kimliği alır (örneğin, CMFUC8PK60000VXFJUD7BCl2W).
  2. {“Alg”: ”yok”, ”typ” başlığı ile bir jeton oluştururlar: ”jwt”} ve yük {“id”: ”cmfuc8pk60000vxfjud7bcl2w”}.
  3. İmza olmadan, jeton dizesi arka nokta ile biter:
    EyjhbgcioiJub25liiwidhlwiJoislduin0.eyjpzci6ImntznvJohbrnjawmdb2EGZQDWQ3YMnsmncifq.
  4. Ziyaret/Auth/Unut-Password/Sıfırlama? Token = Saldırganın kurban hesabı için yeni bir şifre ayarlamasına izin verir.

Formbricks jeton özgünlüğünü doğrulamadığından, yalnızca kullanıcı kimliğine sahip olmak herhangi bir hesabı kaçırmak için yeterlidir.

Bu kusur, kullanıcı kimlik bilgilerini değiştirmek için saldırgan ağ düzeyinde erişim sağlayarak şifre sıfırlama ve e-posta doğrulama akışlarını etkiler.

Özel ayrıcalıklar veya kullanıcı etkileşimi gerekmez. Güvenlik açığının metrikleri aşağıdaki gibidir:

Güvenlik açığı, VerifyToken fonksiyonunun, jeton imzasını veya son kullanma işlemini kontrol etmeden kullanıcı kimliğini çıkarmak için jwt.decode (jeton) kullandığı için ortaya çıkar.

Hem e -posta doğrulaması hem de şifre sıfırlama eylemleri bu güvenli olmayan doğrulayıcıyı paylaşır. Bu tasarım, bir jetonun özgünlüğünü kanıtlayamaz ve kötü amaçlı aktörlerin kimlik doğrulama kontrollerini tamamen atlamasına izin verir.

FormBricks Bakım Makineleri sorunu ele almak için 4.0.1 sürümünü yayınladı. Düzeltme, JWT.Decode’un yerini JWT.Verify, imza, son kullanma, yayıncı ve kitle kontrolleri uygular. Kullanıcılar hemen yükseltmelidir:

npm install formbricks@^4.0.1

Formbrick’leri web uygulamalarına entegre eden geliştiriciler, tüm JWT tabanlı eylemlerin JWT.Verify’yi uygun gizli anahtarlar ve doğrulama seçenekleriyle kullanmasını sağlamalıdır.

Bu kritik kusur, kapsamlı JWT doğrulamasının önemini vurgulamaktadır. Sistemler tam imzayı ve talep kontrollerini uygulayana kadar, saldırganlar kullanıcı hesaplarını ihlal etmek için görünüşte küçük gözetimlerden bile yararlanabilir.

Tüm FormBricks kullanıcıları, uygun kimlik doğrulama önlemlerini geri yüklemek için gecikmeden 4.0.1’e yükseltmelidir.

Anında güncellemeler almak ve GBH’yi Google’da tercih edilen bir kaynak olarak ayarlamak için bizi Google News, LinkedIn ve X’te takip edin.



Source link