CVE-2026-15890

Orta

Açıklama

PSA Internal Trusted Storage dönüşüm modülü için varsayılan AEAD nonce sağlayıcısı olan `subsys/secure_storage/src/its/transform/aead_get.c` dosyasındaki `secure_storage_its_transform_aead_get_nonce()` fonksiyonu, nonce sayacını senkronize edilmemiş fonksiyon-yerel statik değişkenlerde (`s_nonce` ve `s_nonce_initialized`) saklamaktadır. Her ITS yazma işlemi, AES-GCM veya ChaCha20-Poly1305 nonce değerini burada `secure_storage_its_transform_to_store()` aracılığıyla alır. Fonksiyon herhangi bir kilit (lock) tutmadığı için, onu eşzamanlı olarak çağıran iki iş parçacığı paylaşılan statikler üzerinde yarış durumuna (race condition) girer: başlatma yolu (`psa_generate_random()` ardından `memcpy()`) ve atomik olmayan artır-ve-kopyala yolu, her biri aynı nonce değerini iki farklı şifreleme işlemine verebilir ve artışları kaybederek sayacın asla tekrarlamaması gereken değerleri tekrarlamasına neden olabilir. ITS katmanı (`subsys/secure_storage/src/its/implementation.c` içindeki `secure_storage_its_set()`), kendi başına herhangi bir serileştirme gerçekleştirmez, bu nedenle eşzamanlı aynı-UID yazmaları doğrudan yarış durumundaki sağlayıcıya ulaşır. AES-GCM veya ChaCha20-Poly1305 altında aynı anahtar ile bir nonce'un yeniden kullanılması, felaketle sonuçlanan bir AEAD hatasıdır: iki düz metnin XOR işlemini sızdırır (ITS rutin olarak PSA kalıcı anahtarları da dahil olmak üzere gizli bilgileri saklar) ve GCM için kimlik doğrulama anahtarını açığa çıkararak saklanan girdilerin sahte olarak oluşturulmasına olanak tanır. AEAD anahtarı girdi UID'sine göre türetildiğinden, güvenlik açısından ilgili çakışma, aynı UID'ye yapılan iki eşzamanlı yazmanın aynı nonce değerini almasıdır; ham destek depolamasını okuyabilen bir saldırgan daha sonra bu yeniden kullanımı istismar edebilir. Zephyr ile birlikte gelen hem `zms.c` ITS depolama arka ucu hem de `settings.c` içindeki `settings/NVS` arka ucu, ertelenmiş çöp toplama özelliğine sahip günlük yapılı (log-structured) flaş depolarıdır; dolayısıyla yeniden yazma ile yer değiştiren bir girdi, sektörü geri kazanılana kadar bölmede fiziksel olarak mevcut kalır. Bu nedenle, yarış durumuna giren iki aynı-UID yazması, her iki şifreli metni de ham imajda aynı anda okunabilir durumda bırakır ki bu, nonce yeniden kullanımının istismar edilebilmesi için gereken koşuldur. Tetikleyici dar kalmaya devam etmektedir: her iki yerleşik anahtar sağlayıcısı da (`DEVICE_ID_HASH` ve `ENTRY_UID_HASH`) türetilen anahtarı girdi UID'si ile tuzladığından, farklı UID'ler arasındaki yeniden kullanım zararsızdır ve ifşa durumu, aynı UID'yi iki iş parçacığından eşzamanlı olarak yazan bir uygulama gerektirir. Düzeltme, nonce üretimi süresince tutulan bir `K_MUTEX_DEFINE(s_nonce_mutex)` ile sağlayıcıyı serileştirmektedir.

ÖnemOrta
CVSS5.3
İstismar olasılığı—
ÜrünZephyr
Yayın21 Eyl 2026
İlk görülme21 Eyl 2026

Nasıl düzeltilir

Güncelleyin
  • zephyrproject zephyr4.4.2 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
zephyrproject zephyr4.0.0 ≤ v < 4.4.24.4.2

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-15890 · Zephyr · Dark Radar