CVE-2026-9728
Açıklama
drivers/mbox/mbox_handlers.c içindeki kullanıcı alanı sistem çağrısı doğrulayıcısı z_vrfy_mbox_send(), iç içe msg->data/msg->size alanlarını doğrudan canlı kullanıcı alanı belleğinden okuyarak doğruluyor ve ardından özgün, hâlâ değiştirilebilir kullanıcı alanı struct mbox_msg * işaretçisini z_impl_mbox_send() ve alttaki sürücüye iletiyordu. Erişim denetimi ile sürücünün msg->data'yı kullanması arasında, doğrulanan işaretçi değiştirilebiliyor ve bir denetim zamanı/kullanım zamanı (time-of-check/time-of-use) penceresi ortaya çıkıyordu. CONFIG_USERSPACE ile derlenmiş bir sistemde, ayrıcalıksız herhangi bir kullanıcı alanı iş parçacığı mbox_send() sistem çağrısını çağırabilir. Çağıranın adres alanını paylaşan ikinci bir iş parçacığı, doğrulayıcının sınır denetimi geçtikten sonra ancak sürücü işaretçiyi başvurmadan önce msg->data'yı bir süpervizör (çekirdek) adresiyle üzerine yazmak için yarışabilir. Sürücü daha sonra süpervizör bağlamında saldırganın seçtiği adresten okuma yapar (örneğin NXP mailbox sürücüsündeki memcpy(&data32, msg->data, msg->size); bu baytlar ardından karşı mailbox uç noktasına gönderilir). Etki, kullanıcı alanından süpervizöre bir erişim denetimi atlatmasıdır: çekirdek belleği içeriğinin ifşası (yüksek gizlilik etkisi) veya geçersiz/eşlenmemiş hedef adres durumunda hata veren bir çekirdek okuması nedeniyle hizmet reddi. Düzeltme, struct mbox_msg'in tamamını k_usermode_from_copy() ile çekirdek yığınındaki bir kopyaya anlık görüntü olarak alır ve bu değişmez kopyayı doğrulayıp ileterek yarışı kapatır.
Nasıl düzeltilir
- zephyrproject zephyr4.4.2 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| zephyrproject zephyr | 3.0.0 ≤ v < 4.4.2 | 4.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.
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.