CVE-2026-79976
Açıklama
subsys/pmci/mctp/mctp_i2c_gpio_target.c dosyasındaki MCTP-over-I2C+GPIO hedef bağlaması, veri yolu denetleyicisinin önce bir kayıt numarası yazdığı ve ardından yük baytlarını yazdığı veya okuduğu küçük bir sözde kayıt dosyası simüle eder. Denetleyici bir I2C STOP komutu verdiğinde seçili kayıt (b->reg_addr) ve veri aşaması bayrağı (b->rxtx) hiçbir zaman temizlenmiyordu; bu nedenle tamamlanan bir aktarımdan sonra, ilgili kaydın referans verdiği paket tamponu mctp_i2c_gpio_target_stop() tarafından zaten tüketilmiş ve NULL olarak ayarlanmış olsa bile hedefte hala bir veri kaydı seçili kalıyordu. Veri yolundaki bir denetleyici, herhangi bir kimlik doğrulama olmaksızın iki sıradan işlem kullanarak NULL tampon ile mctp_i2c_gpio_target_stop()'un aynı dalına yeniden girebilir: önce MCTP_I2C_GPIO_RX_MSG_ADDR adresine normal bir paket yazımı ve ardından STOP (bu işlem b->rx_pkt'yi iletir ve serbest bırakır), ardından yalın bir okuma işlemi ve tekrar STOP. Başarısız olan read_requested() çağrısı güncelliğini yitirmiş durumu olduğu gibi bırakır ve I2C sürücüsü hala STOP geri çağırmasını iletir; bu da daha sonra mctp_bus_rx()'in NULL bir paketle çağrılmasına neden olur. Simetrik durum iletim tarafında da mevcuttur; burada güncelliğini yitirmiş MCTP_I2C_GPIO_TX_MSG_ADDR seçimi, b->tx_pkt temizlendikten sonra b->tx_pkt->end ifadesini çözümler ve ek olarak b->tx_complete sinyalini ikinci kez göndererek bir sonraki giden paketin düşürülmesine neden olur. Bu çözümleme işlemi I2C hedef kesme işleyicisinde gerçekleştiğinden, 0 adresine erişimleri yakalayan herhangi bir hedefte sonuç ölümcül bir istisna ve cihaz sıfırlaması veya durmasıdır; bu da paylaşılan yönetim veri yolunda denetleyici olarak hareket edebilen herhangi bir cihaz (örneğin, eş bir MCTP uç noktasındaki veya BMC üzerindeki ele geçirilmiş donanım yazılımı) tarafından gerçekleştirilen bir hizmet reddi (DoS) durumudur. 0 adresinin okunabildiği parçalarda etki, hatalı biçimlendirilmiş bir paket tamponunun MCTP yığınına iletilmesi ve iletim paketlerinin kaybı şeklinde azalır. Saldırgan tarafından kontrol edilen herhangi bir değer yazılmaz ve gizlilik veya bütünlük sınırı aşılmaz. Düzeltme, her STOP işleminde b->reg_addr değerini MCTP_I2C_GPIO_INVALID_ADDR olarak sıfırlar ve b->rxtx bayrağını temizler; böylece herhangi bir veri aşaması yeniden çalışmadan önce yeni bir kayıt seçilmelidir. Yalnızca deneysel CONFIG_MCTP alt sistemini CONFIG_MCTP_I2C_GPIO_TARGET=y ile kullanan yapılar etkilenmektedir.
Nasıl düzeltilir
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| zephyrproject zephyr | 4.3.0 ≤ v ≤ 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.