CVE-2026-71887

Yüksek

Açıklama

Bouncy Castle for Java 1.86 öncesi sürümlerde, yüksek seviyeli OpenPGP API'si, alt anahtar bağlama imzasının gömülü bir Birincil Anahtar Bağlama (çapraz sertifikalandırma) imzası taşımadığı ve bu bağlamanın bir Key Flags alt paketini atladığı durumlarda, bir imzalama alt anahtarı tarafından oluşturulan veri imzasını kabul ediyordu. RFC 9580 bölüm 5.2.1.8 ve bölüm 10.1.3, imza oluşturabilen her alt anahtar üzerinde gömülü Birincil Anahtar Bağlama imzası gerektirir; bu, alt anahtarın bağlı olduğu birincil anahtara ait olduğuna dair kendi beyanıdır. OpenPGPCertificate, alt anahtarın key flag'lerini iki farklı şekilde çözümlüyordu. isSigningKey() metodu, getKeyFlags() ve getApplyingSubpacket() üzerinden işlem yapar; bağlama imzası alt paketi atladığında birincil anahtarın doğrudan anahtar veya birincil Kullanıcı Kimliği öz-imzasına geri döner, böylece alt anahtar birincilin SIGN_DATA özelliğini miras alır ve imzalama yeteneğine sahip olarak sayılır. Gereksinimi zorunlu kılan verifyEmbeddedPrimaryKeyBinding() ise bağlama imzasının kendi özetlenmiş alt paketlerini okur, orada SIGN_DATA bulamaz ve geri imzasını hiç talep etmeden imzalama yetkisi olmayan bir anahtar olarak erken dönüş yapar. Bu nedenle aynı alt anahtar, GnuPG'nin aynı sertifika ve mesajı reddettiği çapraz sertifikasyondan muaf kalırken, imzalama yeteneğine sahip görünüyordu; dolayısıyla imzaları sertifikaya atfediliyor ve OpenPGPSignature.OpenPGPDocumentSignature.isValid() true değerini döndürüyordu. Bir saldırganın yalnızca kurbanın herkese açık olan imzalama alt anahtarına ihtiyacı vardır: Saldırgan bunu, herhangi bir Key Flags ve (alt anahtarın özel anahtarı olmadan oluşturamayacakları) gömülü Birincil Anahtar Bağlama imzası içermeyen, kendilerinin oluşturabildiği bir Alt Anahtar Bağlama imzası ile kendi birincil anahtarlarına bağlar. Kurbanın gerçekten imzalanmış mesajlarından birini bu sertifikaya karşı doğrulayan güvenilir bir taraf, imzanın geçerli olduğu bilgisini alır ve yayıncı olarak saldırganın sertifikası sunulur. Sertifikanın Kullanıcı Kimlikleri kendi beyanına dayandığından, kimliği çevreleyen sertifikadan alırken alt anahtarın parmak izine veya anahtar kimliğine odaklanan bir doğrulayıcı, gerçek bir imzayı saldırgan tarafından seçilen bir kimlik altında raporlar. Bu durum yeni bir imzanın taklidi değil, gerçek bir imzanın yanlış atfedilmesidir: hiçbir özel anahtar ele geçirilmez ve imza, eklenen alt anahtarın gerçekten oluşturduğu bir imza olmalıdır. Düşük seviyeli PGPSignature / PGPPublicKeyRing API'si tasarım gereği hiçbir bağlama kontrolü yapmaz ve etkilenmez. Key Flags, taşıyan imzanın referans verdiği anahtar hakkında bir beyandır (RFC 9580 bölüm 5.2.3.29), bu nedenle bir alt anahtar artık bunları birincil anahtarın sertifika genelindeki imzalarından miras almaz: alt paketi atlayan bir Alt Anahtar Bağlama imzası, artık alt anahtarı birincilin yetenekleriyle değil, hiçbir yetenekle bırakır; bu da bayrakların, çapraz sertifikasyon kontrolünün danıştığı bayraklarla diğer tüm kararların danıştığı bayrakların aynı olmasını sağlar. Tercihler ve doğrudan anahtar imzasının taşıdığı diğer alt paketler eskiden olduğu gibi miras alınmaya devam eder ve bayrakları meşru olarak kendi doğrudan anahtar veya Kullanıcı Kimliği öz-imzasından gelen birincil anahtarın kendisi etkilenmez.

ÖnemYüksek
CVSS8.2
İstismar olasılığı—
ÜrünBC-JAVA
Yayın3 Eki 2026
İlk görülme3 Eki 2026

Nasıl düzeltilir

Güncelleyin
  • Legion of the Bouncy Castle Inc. BC-JAVA1.86 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
Legion of the Bouncy Castle Inc. BC-JAVA1.81 ≤ v < 1.861.86

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-2026-71887 · BC-JAVA · Dark Radar