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

CVE-2026-62374

SD-JWT JS: Değiştirilmiş açıklamalar sessizce düşürülüyor, reddedilmiyor

openwallet-foundation @sd-jwt/coreopenwallet-foundation @sd-jwt/decode

Yüksek 7,1 CVSS 4.0
Yayımlandı
Güncellendi
29 Eki 2026
Açık yaşı
1 gün
Kaydı açan
GitHub_M

Yönetici özeti

Bu açık, kimlik ve yetki doğrulamasında kullanılan bir kütüphanede, bazı bilgilerin sessizce eksik kabul edilmesine yol açabilir. Eksik bir bilgi nedeniyle erişim kararları hata vermeden değişebilir, bu da yetkisiz erişim riski doğurur. Etkilenen sistemlerin hızlıca güncellenmesi önerilir.

ÖzetTürkçe

SD-JWT JS, seçici açıklama (Selective Disclosure) JWT spesifikasyonunun JavaScript uygulamasıdır. 0.19.0 ve önceki sürümlerde @sd-jwt/decode paketi, özet değeri Issuer tarafından imzalanmış _sd dizisiyle eşleşmeyen değiştirilmiş bir açıklamayı sessizce atlamakta ve geriye eksiltilmiş bir talep kümesi döndürmektedir. Bu durumda Issuer imzası geçerli kalsa da doğrulama başarılı görünmektedir. Geçersiz UTF-8 baytları içeren açıklamalar da U+FFFD karakterlerine dönüştürülerek kabul edilmektedir. Etki, @sd-jwt/core paketini kullanan tüm uygulamaları kapsamaktadır.

Saldırgan ne yapabilir?

Kötü niyetli bir kullanıcı veya ağ üzerinde konumlanmış bir saldırgan, talep kümesinden bazı bilgileri çıkarabilir; bu da yetki kontrolü gibi kararların, hata vermeden, yanlış sonuçlanmasına yol açabilir.

Kaynaktaki açıklama (İngilizce)

SD JWT JS is a JavaScript implementation of the Selective Disclosure JWT (SD-JWT) specification. In version 0.19.0 and earlier, @sd-jwt/decode, also used by @sd-jwt/core, silently drops a tampered Disclosure whose digest no longer matches the Issuer-signed _sd array and returns a reduced claim set, reporting success while the Issuer signature remains valid. Both a tampered Disclosure that remains valid JSON and a Disclosure containing invalid UTF-8 bytes reach this silent-drop behavior. In the latter case, the TextDecoder / Buffer decoding path substitutes U+FFFD replacement characters, recovering syntactically valid disclosure data instead of rejecting the malformed input. This violates RFC 9901 section 7.1 step 5, which requires rejection of unreferenced Disclosures, and section 7.1 step 3 / section 4.2.1, which require rejection of invalid Disclosures. A malicious holder can exploit this omission primitive, including through SDJwtInstance.verify() when key binding is required. An on-path attacker can also tamper with a Disclosure when the relying party does not enforce key binding; enforced key binding rejects on-path tampering because it invalidates the KB-JWT sd_hash binding. If the relying party defaults to allowing access when a constraining age, role, or restriction claim is absent, the silent claim reduction can change an authorization decision without an error. This issue is fixed in @sd-jwt/core version 0.20.0; no patched version of the standalone @sd-jwt/decode package is identified.

Ne yapmalı?

  1. @sd-jwt/core paketini 0.20.0 veya daha yeni bir sürüme yükseltin. Genel öneri
  2. Bağımsız @sd-jwt/decode paketini kullanıyorsanız, düzeltilmiş bir sürüm belirlenmediği için bu paketi doğrudan kullanmak yerine @sd-jwt/core üzerinden geçiş yapmayı değerlendirin. Genel öneri
  3. Yükseltme yapılana kadar, yetki kararlarını eksik talep varsayımına dayandırmayın; kritik talepler yoksa erişimi varsayılan olarak reddedecek şekilde kontrolleri gözden geçirin. Genel öneri

Ek önlemler

  • Anahtar bağlama (key binding) doğrulamasını zorunlu kılın; bu, ağ üzerinde yapılan değişikliklerin tespit edilmesine yardımcı olur. Genel öneri
  • Doğrulama sonuçlarında beklenen talep sayısını veya zorunlu alanları kontrol edip beklenmeyen eksiklikleri kayıt altına alın. Genel öneri

Bu açık kişisel verilerin sızmasına yol açabilir. Sistemlerinizde kullanıldığından şüpheleniyorsanız KVKK'daki ihlal bildirimi yükümlülüğünüzü (Kurul'a 72 saat içinde bildirim) hukuk danışmanınızla birlikte değerlendirin. Bu not hukuki tavsiye değildir.

Etkilenen sürümler2 yazılım

YazılımEtkilenenDüzeltildiği sürüm
openwallet-foundation @sd-jwt/core ≤ 0.19.0 –
openwallet-foundation @sd-jwt/decode ≤ 0.19.0 –

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