← CVE Veritabanı

CVE-2026-89846

Kritik

Teknik Veri (Otomatik)

CVSS Skoru
9.1
EPSS
—
CWE
—
KEV Durumu
Hayır

Yayım tarihi: 16 Eylül 2026

Linux çekirdeğinde aşağıdaki güvenlik açığı çözülmüştür: scsi: qla2xxx: rsp_info_len'i sınırlamak için OOB sense-data okunmasını önlemek qla2x00_status_entry()'de, FWI2 durum yolu sense_data'yı ilerletir ve par_sense_len'i rsp_info_len tarafından azaltır: if (IS_FWI2_CAPABLE(ha)) { sense_data += rsp_info_len; par_sense_len -= rsp_info_len; } rsp_info_len, hedefin FCP yanıtından (sf.rsp_data_len) doğrudan alınan 32 bitlik bir değerdir, mentre par_sense_len, IOCB veri alanı boyutudur (24xx için 28 byte, 29xx için 60 byte). Bir düşman veya hatalı hedefin par_sense_len'den daha büyük bir rsp_info_len raporlaması, unsigned çıkarma işleminin underflow olmasına ve sense_data'nın sınırlar dışına çıkmasına neden olur. Underflow olan par_sense_len, daha sonra qla2x00_handle_sense()'deki kapağı geçersiz kılar: if (sense_len > par_sense_len) sense_len = par_sense_len; memcpy(cp->sense_buffer, sense_data, sense_len); böylece memcpy, out-of-bounds sense_data işaretçisinden SCSI_SENSE_BUFFERSIZE baytını okur ve komutun sense tamponuna komşu response-ring/heap belleğini sızdırır. Çözüm, rsp_info_len'i par_sense_len'e sabitlemek ve par_sense_len'in asla underflow olmasını önlemek ve sense_data'nın IOCB veri alanında kalmasını sağlamak için subtraction'dan önce rsp_info_len'i sınırlamaktır. Düzeltme, comp_status switch'inin önünde yer alır ve qla2x00_handle_sense()'in iki çağırma noktasını da kapsar.

Orijinal açıklama (İngilizce)

In the Linux kernel, the following vulnerability has been resolved: scsi: qla2xxx: Bound rsp_info_len to avoid OOB sense-data read In qla2x00_status_entry(), the FWI2 status path advances sense_data and shrinks par_sense_len by rsp_info_len: if (IS_FWI2_CAPABLE(ha)) { sense_data += rsp_info_len; par_sense_len -= rsp_info_len; } rsp_info_len is a 32-bit value taken directly from the target's FCP response (sf.rsp_data_len), while par_sense_len is the IOCB data area size (28 bytes for 24xx, 60 bytes for 29xx). A hostile or buggy target reporting an rsp_info_len larger than par_sense_len makes the unsigned subtraction underflow to a huge value and advances sense_data out of bounds. The underflowed par_sense_len then defeats the cap in qla2x00_handle_sense(): if (sense_len > par_sense_len) sense_len = par_sense_len; memcpy(cp->sense_buffer, sense_data, sense_len); so the memcpy reads up to SCSI_SENSE_BUFFERSIZE bytes from the out-of-bounds sense_data pointer, leaking adjacent response-ring/heap memory into the command's sense buffer. Clamp rsp_info_len to par_sense_len before the subtraction so par_sense_len can never underflow and sense_data stays within the IOCB data area. The fix sits before the comp_status switch, covering both qla2x00_handle_sense() call sites.

Bu CVE için henüz editoryal inceleme yapılmadı. Sadece otomatik teknik veri gösteriliyor.