CVE-2026-12364
Açıklama
subsys/logging/log_msg.c dosyasındaki kullanıcı alanı sistem çağrısı doğrulayıcısı z_vrfy_z_log_msg_static_create(), zorunlu K_SYSCALL_* kontrollerinden hiçbirini gerçekleştirmeden; çağıran tarafından sağlanan source, desc, package ve data argümanlarını doğrudan çekirdek modu uygulaması olan z_impl_z_log_msg_static_create() fonksiyonuna ileten basit bir geçiş noktasıydı. z_log_msg_static_create() fonksiyonu __syscall olarak tanımlandığı için, CONFIG_USERSPACE altında herhangi bir ayrıcalıksız kullanıcı modu iş parçacığı, bu fonksiyonu tamamen saldırgan kontrollü argümanlarla doğrudan çağırabilir. Çekirdek modu işleyicisi, güvenilmeyen bu değerlerin her birinin referansını çözer: frontend_runtime_filtering() source işaretçisini bir struct log_source_dynamic_data olarak okur, cbprintf_package_copy() package işaretçisinden desc.package_len bayt kadar veri okur ve z_log_msg_finalize() data işaretçisinden desc.data_len bayt kadar veriyi memcpy() ile kopyalar. Herhangi bir doğrulama olmadığı için, bir kullanıcı iş parçacığı rastgele çekirdek adresleri ve rastgele uzunluklar sağlayabilir ve çekirdek bunları okuyacaktır. Bu durumun etkisi, çekirdek modunda hizmet reddi (çekirdeğin saldırgan tarafından seçilen bir işaretçinin referansını çözerken hata vermesi) ve günlük kaydı arka uç çıktısının saldırgan tarafından gözlemlenebildiği durumlarda, yayınlanan günlük mesajına kopyalanan rastgele çekirdek belleğinin ifşa edilmesidir; bu, kullanıcı alanı kum havuzunun (sandbox) sağlaması gereken kullanıcı/çekirdek sınırı genelinde bir gizlilik ihlalidir. Okuma işlemleri çekirdek belleğini bozmadığından, sınır dışı yazma primitifi mevcut değildir. Düzeltme, doğrulayıcıya gerekli doğrulamaları ekler: desc.package_len değerini Z_LOG_MSG_MAX_PACKAGE ile sınırlandırır, NULL olmayan veya uzunluk uyumsuzluğu olan durumları reddeder ve package, data ve (bir ön uç ile çalışma zamanı filtreleme etkin olduğunda) source parametrelerine K_SYSCALL_MEMORY_READ() uygular; böylece artık herhangi bir sınır dışı erişim veya çekirdek işaretçisi kabul edilmek yerine K_OOPS hatası oluşturur.
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 | 2.6.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.