Zafiyet.live Keşfet. Değerlendir. Düzelt. Doğrula.
  • Yama var
  • Son 7 gün
  • CWE-203

CVE-2026-65626

jose kütüphanesinde RSAES-PKCS1-v1_5 şifre çözmede Bleichenbacher dolgu oracle zafiyeti

potatosalad jose

Orta 5,9 CVSS 4.0
Yayımlandı
Güncellendi
26 Eki 2026
Açık yaşı
1 gün
Kaydı açan
EEF

ÖzetTürkçe

jose_jwa_pkcs1 modülündeki saf Erlang ile yazılmış RSAES-PKCS1-v1_5 şifre çözme işlemi bir Bleichenbacher dolgu oracle'ıdır. eme_pkcs1_decode/2 fonksiyonu, çözülen blok geçerli PKCS#1 v1.5 dolgusuna sahipse (başta 0x00 0x02, en az sekiz sıfır olmayan bayttan oluşan bir dolgu dizisi ve 0x00 ayırıcı) kurtarılan iletiyi döndürür; aksi halde farklı bir hata sonucu döndürür. rsaes_pkcs1_decrypt/2 fonksiyonu ise uzunluk kontrolü başarısız olduğunda ek olarak {error, {badsize, _}} döndürür. Uygulama, RFC 8017 §7.2.2'de tanımlanan örtük reddetme (implicit rejection) önlemini kullanmaz; dolgu hatasında deterministik sahte bir düz metin üretmediği için, dolgu uyumluluğuna dair tek bir bitlik sinyal çağırana sızar. Ayrıca dp/2 içindeki temel modüler üs alma işlemi, körleme (blinding) uygulanmamış ham bir crypto:mod_pow/3 çağrısı olduğundan, bir uygulama tüm hataları tek bir hata değerine indirgese bile dolgu kontrolü zamanlama yoluyla hâlâ ayırt edilebilir kalır.

Yalnızca genel RSA anahtarını bilen ve RSA1_5 JWE anahtarlarını açan bir şifre çözme uç noktasına (ya da rsa_pkcs1_padding ile doğrudan decrypt_private/3 çağıran bir yapıya) şifreli metin gönderebilen kimliği doğrulanmamış bir saldırgan, bu oracle'ı kullanarak ele geçirilen şifreli metinlerin düz metnini kurtarabilir; bu, içerik şifreleme anahtarlarını ve dolayısıyla korunan iletiyi ele geçirmeyi içerebilir ya da imzaları sahtecilikle üretebilir. Bunun için yaklaşık 10^4 ila 10^6 uyarlanabilir seçilmiş şifreli metin sorgusu yeterlidir.

Bu sorun jose sürümlerini etkiler: 1.3.0 ile 1.11.13 öncesi sürümler.

Kaynaktaki açıklama (İngilizce)

The pure-Erlang RSAES-PKCS1-v1_5 decryption in the jose_jwa_pkcs1 module is a Bleichenbacher padding oracle. eme_pkcs1_decode/2 returns the recovered message when a decrypted block has valid PKCS#1 v1.5 padding (a leading 0x00 0x02, a padding string of at least eight non-zero bytes, and a 0x00 separator) and returns a distinct error result otherwise, and rsaes_pkcs1_decrypt/2 additionally returns {error, {badsize, _}} when the length check fails. The implementation applies no implicit-rejection countermeasure (RFC 8017 §7.2.2): it does not substitute a deterministic pseudo-random plaintext on a padding failure, so a one-bit padding-conformance signal leaks to the caller. Because the underlying modular exponentiation in dp/2 is a raw, non-blinded crypto:mod_pow/3, the padding check also stays distinguishable by timing even when an application normalizes every failure to a single error value.

An unauthenticated attacker who knows only the public RSA key and can submit ciphertexts to a decryption endpoint that unwraps RSA1_5 JWE keys (or otherwise calls decrypt_private/3 with rsa_pkcs1_padding) can use this oracle to recover the plaintext of intercepted ciphertexts, such as content-encryption keys and thus the protected message, or to forge signatures, through roughly 10^4 to 10^6 adaptive chosen-ciphertext queries.

This issue affects jose: from 1.3.0 before 1.11.13.

Bu açığın açıklamasını Türkçeye çevirdik. Adım adım çözüm önerilerini kritik ve yeni açıklar için hazırlıyoruz; düzeltilmiş sürüm aşağıdaki tabloda, ayrıntılar üreticinin duyurusunda.

Etkilenen sürümler1 yazılım

YazılımEtkilenenDüzeltildiği sürüm
potatosalad jose ≥ 1.3.0, < 1.11.13 1.11.13

Kaynaklar7 kaynak

Kayıt geçmişi

  1. Yayımlandı

İlgili açıklar

Türkçe metin, resmi kayıtlardaki bilgilerle yapay zekâ yardımıyla yazıldı ve yayından önce otomatik kontrollerden geçti. Bir değişikliği uygulamadan önce üreticinin duyurusuna mutlaka bakın.