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

CVE-2026-65625

jose kütüphanesinde AES-GCM doğrulama etiketi uzunluğu nedeniyle etiket sahteciliği zafiyeti

potatosalad jose

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

ÖzetTürkçe

jose_jwa_aes modülündeki saf Erlang tabanlı AES-GCM yedek uygulaması, doğrulanacak kimlik doğrulama etiketi bit sayısını saldırganın sağladığı etiketin kendisinden türetmektedir. block_decrypt/4 fonksiyonunun {aes_gcm, Bits} yan tümcesinde gelen etiket yalnızca is_binary/1 ile korunmakta, uzunluğu hiç kontrol edilmemektedir. gcm_block_decrypt/6 fonksiyonu TBits = bit_size(T) hesaplayarak gerçek 128 bitlik etiketin yalnızca bu bitlerini karşılaştırmaktadır. JWE belirteci kontrolü altında bulunduran bir saldırgan, kimlik doğrulama etiketini 8 bite kadar kısaltabilir; bu durumda yalnızca 8 bit denetlenir. Bu, sahtecilik direncini 2^-128 seviyesinden 2^-8 seviyesine düşürür ve anahtarı bilmeden hazırlanan sahte bir şifreli metin 256 denemede güvenilir biçimde doğrulanarak kabul edilebilir (kimlik doğrulama etiketi sahteciliği ve bütünlük atlatma). 128 bitten uzun bir etiket verilmesi ise badmatch hatasına yol açarak çözümleme yapan süreci çökertir. Yedek uygulama, AES-GCM bir yerel crypto NIF tarafından sağlanmadığında herkese açık JWE çözümleme yolu üzerinden devreye girmektedir; örneğin FIPS, kırpılmış veya eski OTP derlemelerinde bu durum ortaya çıkar.

Bu sorun jose paketini etkilemektedir: 1.2.0 sürümünden 1.11.13 sürümüne kadar (1.11.13 hariç).

Kaynaktaki açıklama (İngilizce)

The pure-Erlang AES-GCM fallback in jose_jwa_aes derives the number of verified authentication tag bits from the attacker-supplied tag itself. In the {aes_gcm, Bits} clause of block_decrypt/4, the incoming tag is guarded only by is_binary/1, with no check on its length. Verification in gcm_block_decrypt/6 then computes TBits = bit_size(T) and compares only those bits of the real 128-bit tag. An attacker who controls a JWE token can truncate the authentication tag to as little as 8 bits, so only 8 bits are ever checked. This reduces forgery resistance from 2^-128 to 2^-8, and a forged ciphertext is reliably accepted as authentic within 256 attempts without knowledge of the key (an authentication tag forgery and integrity bypass). Supplying a tag longer than 128 bits instead causes a badmatch that crashes the decrypting process. The fallback is reached through the public JWE decryption path whenever AES-GCM is not provided by a native crypto NIF, for example on FIPS or stripped or older OTP builds.

This issue affects jose: from 1.2.0 before 1.11.13.

Üreticinin geçici önlemi (İngilizce)

Ensure the runtime provides a crypto provider with native AES-GCM support (a standard Erlang/OTP build linked against OpenSSL) so that JOSE dispatches AES-GCM to the native crypto NIF instead of the jose_jwa_aes fallback.

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.2.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.