CVE-2026-78119

Orta

Açıklama

Nuvoton NPCX eSPI sürücüsü, espi_taf_parse() (drivers/espi/espi_npcx.c) fonksiyonunda Target-Attached-Flash (TAF) isteklerini ayrıştırırken, 12 bitlik uzunluk alanını doğrudan FLASHRXBUF FIFO'daki istek başlığından almaktadır. Yazma ve RPMC OP1 istekleri için, uzunluğu ilgili tamponla veya müzakere edilen eSPI alma yükü boyutuyla (tx-plsize, tüm ağaç içi NPCX/NPCK SoC'lerde 64 bayt) karşılaştırmadan, statik bir yapının sabit 16 kelimelik (64 bayt) bir üyesi olan struct espi_taf_pckt.src içerisine DIV_ROUND_UP(len, 4) kadar kelime kopyalamaktadır. Hem döngü sayacı hem de kelime sayısı uint8_t olduğu için kopyalama işlemi 255 yinelemeye kadar çalışabilmektedir. Başlığı müzakere edilen maksimumdan daha büyük bir yük belirttiği bir flash isteği gönderen bir eSPI denetleyicisi, bu nedenle eSPI flash alma kesme işleyicisi üzerinden yapının sonunun ötesine 239 adede kadar 32 bitlik depolama işlemi gerçekleştirir —bu da .bss bölümüne yaklaşık 956 baytlık sınır dışı yazma anlamına gelir— bu sırada kaynak okumaları ise 18 kelimelik FLASHRXBUF kayıt dizisinin sonunu geçerek komşu eSPI kayıtlarına ulaşır. Aynı doğrulanmamış uzunluk, ardından espi_taf_npcx_flash_write() içindeki flash_write()'a 64 baytlık src tamponu kaynak olarak geçilmekte ve ana bilgisayar tarafından seçilen bir adreste, komşu denetleyici SRAM'inden 4 KB'a kadar veri SPI flash belleğe okunmakta, böylece ana bilgisayar bunu geri okuyabilmektedir. taf_npcx_completion_handler() içindeki ilgili sabit boyutlu yığın tamponu, tx-plsize değeri 64 olan SoC'lerde maksimum boyutlu tamamlama yolunda dört bayt taşmıştır. Hata yalnızca eSPI ana bilgisayar tarafında ve yalnızca müzakere edilen yük boyutunu ihlal eden bir istek ile erişilebilirdir; dolayısıyla sıradan ana bilgisayar yazılımından ziyade ana bilgisayar aygıt yazılımı veya veri yolu düzeyinde kontrol gerektirir; standartlara uygun maksimum uzunluktaki bir yazma işlemi tampona tam sığar ve doğru şekilde işlenir. TAF özelliği özellikle gömülü denetleyicinin paylaşılan flash'a ana bilgisayar erişimini yönetmesi (espi_taf_check_read_protect() / espi_taf_check_write_protect()) için mevcut olduğundan, ana bilgisayardan gelen bir alan aracılığıyla denetleyici belleğinin bozulması, özelliğin sağladığı güven sınırını aşmaktadır; sonuçlar denetleyici çökmesinden veya donmasından, flash koruma bölgelerini denetleyen sürücü durumunun bozulmasına kadar değişebilir. Düzeltme, sayaçları genişletir; kelime sayısı hem ARRAY_SIZE(FLASHRXBUF) - NPCX_ESPI_FLASH_HEADER_ADDRESS_LEN hem de NPCX_TAF_RX_PAYLOAD_WORDS (devicetree rx-plsize değerinden türetilmiştir) değerlerini aşan her türlü isteği reddeder; bu tür paketleri yeni bir invalid_flag ile işaretleyerek espi_taf_work()'un bunları işlemek yerine başarısız bir tamamlama ile yanıtlamasını sağlar, iletim yükünü FLASHTXBUF ile sınırlar ve desteklenmeyen döngü türleri için varsayılan bir durum ekler. Yalnızca NPCX/NPCK hedefinde CONFIG_ESPI_TAF etkinleştirilmiş yapılandırmalar etkilenmektedir; hiçbir ağaç içi kart bunu varsayılan olarak etkinleştirmez.

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

Nasıl düzeltilir

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

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
zephyrproject zephyr3.6.0 ≤ v < 4.5.04.5.0

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