CVE-2026-15890

Orta

Təsvir

PSA Internal Trusted Storage transformasi modulu üçün standart AEAD nonce təminatçısı olan `subsys/secure_storage/src/its/transform/aead_get.c` faylındakı `secure_storage_its_transform_aead_get_nonce()` funksiyası öz nonce sayğacını sinxronizasiya edilməmiş funksiya-lokal statik dəyişənlərdə (`s_nonce` və `s_nonce_initialized`) saxlayır. Hər bir ITS yazma əməliyyatı AES-GCM və ya ChaCha20-Poly1305 nonce-unu burada `secure_storage_its_transform_to_store()` vasitəsilə əldə edir. Funksiya heç bir kilidləmə (lock) mexanizmindən istifadə etmədiyi üçün onu eyni vaxtda çağıran iki thread paylaşılmış statik dəyişənlər üzərində yarış vəziyyətinə (race condition) düşür: inisializasiya yolu (`psa_generate_random()` ardınca `memcpy()`) və atomik olmayan artırma-sonra-kopyalama yolu hər biri iki fərqli şifrələmə əməliyyatına eyni nonce dəyərini ötürə bilər və artırmaları itirə bilər, beləliklə sayğac heç vaxt təkrar etməməsi üçün nəzərdə tutulmuş dəyərləri təkrar edir. ITS layı (`subsys/secure_storage/src/its/implementation.c` faylında `secure_storage_its_set()`) özü heç bir seriyallaşdırma aparmadığı üçün eyni UID ilə eyni vaxtda həyata keçirilən yazma əməliyyatları birbaşa bu problemli təminatçıya çatır. AES-GCM və ya ChaCha20-Poly1305 altında eyni açarla nonce-un təkrar istifadəsi kritik AEAD uğursuzluğudur: bu, iki açıq mətnin XOR əməliyyatını sızdırır (ITS mütəmadi olaraq PSA davamlı açarları da daxil olmaqla gizli məlumatları saxlayır) və GCM üçün autentifikasiya açarını ifşa edərək saxlanılan qeydlərin saxtalaşdırılmasına imkan verir. AEAD açarı hər bir giriş UID-sinə görə törədildiyi üçün təhlükəsizlik baxımından kritik toqquşma, eyni UID-yə eyni vaxtda edilən iki yazma əməliyyatının hər ikisinin eyni nonce-u almasıdır; xam yaddaşı oxuya bilən hücumçu daha sonra bu təkrar istifadədən yararlana bilər. Zephyr ilə təqdim olunan hər iki ITS yaddaş backend-i — `zms.c` və `settings.c`-dəki `settings/NVS` backend-i gecikdirilmiş zibil yığımı (garbage collection) olan loq-strukturlaşdırılmış flash yaddaşlardır, buna görə də yenidən yazma ilə əvəzlənən qeyd, sektor geri qaytarılana qədər bölmədə fiziki olaraq mövcud qalır. Beləliklə, yarış vəziyyətində olan iki eyni-UID yazma əməliyyatı hər iki şifrələnmiş mətni xam obrazda eyni anda oxunaqlı saxlayır ki, bu da nonce təkrar istifadəsini istismar etmək üçün tələb olunan şərtdir. Tətikləyici amil məhduddur: hər iki daxili açar təminatçısı (`DEVICE_ID_HASH` və `ENTRY_UID_HASH`) törədilmiş açarı giriş UID-si ilə duzlayır (salt), buna görə də fərqli UID-lər arasında təkrar istifadə zərərsizdir və bu boşluğun ifşası üçün eyni UID-ni iki thread-dən eyni vaxtda yazan tətbiq tələb olunur. Həll yolu, nonce generasiyası müddətində saxlanılan `K_MUTEX_DEFINE(s_nonce_mutex)` ilə təminatçını seriyallaşdırır.

CiddilikOrta
CVSS5.3
İstismar ehtimalı—
MəhsulZephyr
Dərc21 sen 2026
İlk görülmə21 sen 2026

Necə düzəltmək olar

Yeniləyin
  • zephyrproject zephyr4.4.2 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
zephyrproject zephyr4.0.0 ≤ v < 4.4.24.4.2

Versiyanızı yoxlayın

Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.

Intelligence 360 paketində

Attack Surface Management

Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.

CVE-2026-15890 · Zephyr · Dark Radar