CVE-2026-63887
Açıklama
Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: scsi: target: iscsi: Sınırlı iscsi_encode_text_output() fonksiyonu rsp_buf'a ekleme yapıyor iscsi_encode_text_output(), "key=value\0" kayıtlarını iscsit_alloc_login_setup_buffer() içinde tahsis edilen 8192 baytlık bir kzalloc(MAX_KEY_VALUE_PAIRS) tamponu olan login->rsp_buf içine birleştirir. Bu fonksiyondaki üç sprintf() çağrı noktası (v7.1-rc2 sürümünde 1398, 1411, 1424. satırlar), kalan tampon kapasitesini hiçbir zaman kontrol etmez: *length += sprintf(output_buf, "%s=%s", er->key, er->value); *length += 1; output_buf = textbuf + *length; iscsi_target_check_login_request() üzerindeki 8192 baytlık tavan sınırı, giriş (*input*) Login PDU yükünü sınırlandırır ancak tek bir PDU, her biri iscsi_add_notunderstood_response() aracılığıyla 16 baytlık bir "a=NotUnderstood\0" çıktı kaydına genişleyen, dört baytlık minimum "a=b\0" çiftlerinden 2048 adede kadar taşıyabilir. 2048 * 16 = 32 KiB çıktı, 8 KiB'lık bir tamponda kmalloc-8k slab üzerinde yaklaşık 24 KiB'lık bir heap overrun oluşmasına neden olur. Düzeltme, kalan tampona karşı çağrı başına sınır kontrolü ile snprintf() kullanan statik bir iscsi_encode_text_record() yardımcı fonksiyonu getirir ve iscsi_encode_text_output() üzerinden bir u32 textbuf_size parametresi geçirir. iscsi_target_handle_csg_zero() (PHASE_SECURITY) ve iscsi_target_handle_csg_one() (PHASE_OPERATIONAL) içindeki her iki çağrı noktası da MAX_KEY_VALUE_PAIRS değerini iletir. Taşma durumunda kodlayıcı durumu günlüğe kaydeder, kuyruğa alınmış kayıtları düşürmek için iscsi_release_extra_responses() fonksiyonunu çağırır ve -1 döndürür; her iki çağırıcı nokta artık geri dönmeden önce iscsit_tx_login_rsp() aracılığıyla ISCSI_STATUS_CLS_INITIATOR_ERR / ISCSI_LOGIN_STATUS_INIT_ERR gönderir, böylece başlatıcı sessiz bir bağlantı kopması yerine açık bir başarısız giriş yanıtı görür. (Bu yamadan önce bunu sadece PHASE_OPERATIONAL çağırıcısı yapıyordu; PHASE_SECURITY çağırıcısı da aynı yapıya dönüştürüldü.)
Nasıl düzeltilir
- linux linux_kernel5.10.259, 5.15.210, 6.1.176, 6.6.143, 6.12.93, 6.18.35, 7.0.12 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| linux linux_kernel | 3.1 ≤ v < 5.10.259, 5.11 ≤ v < 5.15.210, 5.16 ≤ v < 6.1.176, 6.2 ≤ v < 6.6.143, 6.7 ≤ v < 6.12.93, 6.13 ≤ v < 6.18.35, 6.19 ≤ v < 7.0.12, 7.1 | 5.10.259, 5.15.210, 6.1.176, 6.6.143, 6.12.93, 6.18.35, 7.0.12 |
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.