- 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
- 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ım | Etkilenen | Düzeltildiği sürüm |
|---|---|---|
| potatosalad jose | ≥ 1.2.0, < 1.11.13 | 1.11.13 |
Kaynaklar7 kaynak
- CVE.org kaydı
- NVD kaydı
- github.com/…g-jose/security/advisories/GHSA-6gxw-6f7r-cjr6 Üretici bülteni
- github.com/…ommit/3fa1f8e3efda0da5ce6f4c9984789f979dc02740 Yama
- cna.erlef.org/cves/CVE-2026-65625.html Diğer
- osv.dev/vulnerability/EEF-CVE-2026-65625 Diğer
- github.com/…ommit/8848b172575fb7d7e1e2977e8ae0a21678d2157a Diğer
Kayıt geçmişi
- 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.