CVE-2025-47934

Yüksek

Açıklama

OpenPGP.js, OpenPGP protokolünün bir JavaScript uygulamasıdır. Versiyon 5.0.1 ile başlayıp 5.11.3 ve 6.1.1 versiyonlarından önceki sürümlerde, kötü niyetle değiştirilmiş bir mesaj `openpgp.verify` veya `openpgp.decrypt` fonksiyonlarına iletilebilir; bu durum, söz konusu fonksiyonların aslında imzalanmamış olan verileri döndürürken geçerli bir imza doğrulama sonucu döndürmesine neden olur. Her iki fonksiyon da orijinal olarak imzalanan veriyle eşleşmeyebilecek çıkarılmış veriler döndürdüğü için bu açık, satır içi (ayrık olmayan) imzalı mesajların (`openpgp.verify` kullanılarak) ve imzalanmış ve şifrelenmiş mesajların (`verificationKeys` ile `openpgp.decrypt` kullanılarak) imza doğrulamalarının taklit edilmesine izin verir. Ayrık imza doğrulamaları etkilenmemektedir çünkü bu durumda herhangi bir imzalı veri döndürülmez. Bir mesajı taklit etmek için saldırganın tek bir geçerli mesaj imzasına (satır içi veya ayrık) ve meşru olarak imzalanmış düz metin verilere ihtiyacı vardır; ardından saldırgan, kendi seçtiği herhangi bir veriyle satır içi imzalı bir mesaj veya imzalanmış ve şifrelenmiş bir mesaj oluşturabilir ve bu mesaj OpenPGP.js'nin etkilenen versiyonları tarafından meşru olarak imzalanmış gibi görünecektir. Diğer bir ifadeyle, herhangi bir satır içi imzalı mesaj, (imzanın hala geçerli olduğunu belirtirken) başka herhangi bir veriyi döndürecek şekilde değiştirilebilir; aynı durum, saldırgan geçerli bir imza elde edip bu imzayla birlikte yeni bir mesajı (saldırganın seçimiyle) şifreleyebilirse, imzalanmış+şifrelenmiş mesajlar için de geçerlidir. Sorun 5.11.3 ve 6.1.1 versiyonlarında giderilmiştir. Bazı geçici çözümler mevcuttur. Satır içi imzalı mesajları doğrularken, mesajı ve imza(ları) `openpgp.readMessage` tarafından döndürülen mesajdan ayıklayın ve imzayı ve yalnızca veriyi içeren yeni bir mesajı (`openpgp.createMessage` kullanılarak oluşturulan) `openpgp.verify` fonksiyonuna ileterek imza(yı)/her bir imzayı ayrık bir imza olarak doğrulayın. İmzalanmış+şifrelenmiş mesajları çözerken ve doğrularken, önce `verificationKeys` olmadan `openpgp.decrypt` fonksiyonunu çağırarak ve ardından döndürülen imza(ları) ve şifresi çözülmüş verileri içeren yeni bir mesajı (`openpgp.createMessage` kullanılarak oluşturulan) `openpgp.verify` fonksiyonuna ileterek işlemi iki adımda gerçekleştirin.

ÖnemYüksek
CVSS8.7
İstismar olasılığı—
ÜrünOpenpgp
Yayın19 May 2025
İlk görülme19 May 2025
Zayıflık türüCWE-347CWE-347

Nasıl düzeltilir

Güncelleyin
  • openpgp5.11.3, 6.1.1 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
openpgpnpm5.0.1 ≤ v < 5.11.3, 6.0.0-alpha.0 ≤ v < 6.1.15.11.3, 6.1.1

Sürümünüzü kontrol edin

Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.

Intelligence 360 paketinde

Attack Surface Management

Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.

CVE-2025-47934 · Openpgp · Dark Radar