CVE-2026-72084
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: scsi: target: Bound PR-OUT TransportID parsing to the received buffer core_scsi3_decode_spec_i_port() və core_scsi3_emulate_register_and_move() funksiyaları raw PERSISTENT RESERVE OUT parametr buferini neçə baytın etibarlı olduğunu bildirmədən target_parse_pr_out_transport_id() funksiyasına ötürür. iSCSI TransportID (FORMAT CODE 01b) üçün iscsi_parse_pr_out_transport_id() funksiyası məhdudiyyətsiz strstr() vasitəsilə ",i,0x" ISID ayırıcısını tapır (və xəta yolunda adı yenidən məhdudiyyətsiz "%s" ilə çap edir). İnisiator elə bir TransportID təqdim edə bilər ki, onun iSCSI adında nə ",i,0x" alt sətiri, nə də NUL terminatoru olsun və parametr siyahısı sonuna qədər dolsun, beləliklə skan buferin sonundan kənara çıxsın. Parametr siyahısı birdən çox səhifəni əhatə etdikdə, bufer çoxsəhifəli vmap (transport_kmap_data_sg()) olur, buna görə də həddindən artıq oxuma (over-read) sondakı vmalloc mühafizə səhifəsinə keçir və oops törədir (KASAN: vmalloc-out-of-bounds in strstr). Bu, o cümlədən vhost-scsi vasitəsilə qonağın, iSCSI TPG vasitəsilə ixrac edilən cihazla PR OUT ötürən hər hansı fabric tərəfindən əlçatandır. Qəbul edilmiş baytların sayını parser-ə ötürün və iSCSI TransportID-nin özünün təsvir etdiyi uzunluğunu (ADDITIONAL LENGTH + 4) öncədən bir dəfə yoxlayın: əgər bu spc4r17 minimumundan aşağıdırsa və ya qəbul edilmiş buferdən böyükdürsə, onu rədd edin, sonra ayırıcı axtarışını, ISID gəzintisini və adın surətləndirilməsini həmin uzunluqla məhdudlaşdırın. Bu, çağırıcıların artıq parsningdən sonra yerinə yetirdiyi uzunluq yoxlamasıdır (core_scsi3_decode_spec_i_port() tid_len-i tpdl ilə müqayisə edir, core_scsi3_emulate_register_and_move() onu data_length ilə yoxlayır) və indi skandan əvvələ köçürülüb. Həmçinin, terminatoru olmayan adın məhdudiyyətsiz "%s" hissəsini silin. i_str-ə kopyalamazdan əvvəl min_t ilə səssiz şəkildə kəsmək əvəzinə, hər format üçün açıq ad-uzunluğu yoxlamalarını əlavə edin: FORMAT CODE 00b üçün deskriptor gövdəsi (tid_len - 4 bayt) i_str[TRANSPORT_IQN_LEN]-ə sığmasa rədd edin; FORMAT CODE 01b üçün ad hissəsi (&buf[4]-dən ayırıcıya qədər) sığmasa rədd edin. Hər iki yoxlama hər bir format budağında sərhəd məqsədini aşkar edir. Eyni zamanda, ",i,0x" ayırıcısı deskriptorun tam sonunda yerləşən FORMAT CODE 01b TransportID-sini də rədd edin: bu, boş bir ISID saxlayır və qaytarılan port nexus göstəricisini buf + tid_len-ə, yəni deskriptordan bir addım sonraya yönəldir, qeydiyyat kodu (__core_scsi3_locate_pr_reg(), __core_scsi3_alloc_registration()) isə daha sonra bunu ISID sətiri kimi istifadə edir (dereference) — bu, yanlış formalaşdırılmış deskriptor üçün parametr buferinin eyni həddindən artıq oxunmasıdır.
Necə düzəltmək olar
- Linux Linux88c67c3de914e19172e1d878a7625c5b06c20ec5, 842248047ef28dbf3b3f7f49a0ec315054d4dab8, 03fbc7de8d5e85fc8420e57e8304c855efd453ab, 6ca5de8782e67573a61a6736b6dc0ffe58dcdf59, 9298078a8f7d8181a04614a34ab655ccdf038204, 004ccd2d3b4ac36a300e05e01df152e5c02a5a82, 555a89846ed888d7401b3f7200934c0fbedcbb46, d04a179085c262c9ed577d0a4cbc6482ff1fd9a3 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5 ≤ v < 88c67c3de914e19172e1d878a7625c5b06c20ec5, c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5 ≤ v < 842248047ef28dbf3b3f7f49a0ec315054d4dab8, c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5 ≤ v < 03fbc7de8d5e85fc8420e57e8304c855efd453ab, c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5 ≤ v < 6ca5de8782e67573a61a6736b6dc0ffe58dcdf59, c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5 ≤ v < 9298078a8f7d8181a04614a34ab655ccdf038204, c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5 ≤ v < 004ccd2d3b4ac36a300e05e01df152e5c02a5a82, c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5 ≤ v < 555a89846ed888d7401b3f7200934c0fbedcbb46, c66ac9db8d4ad9994a02b3e933ea2ccc643e1fe5 ≤ v < d04a179085c262c9ed577d0a4cbc6482ff1fd9a3, 2.6.38 | 88c67c3de914e19172e1d878a7625c5b06c20ec5, 842248047ef28dbf3b3f7f49a0ec315054d4dab8, 03fbc7de8d5e85fc8420e57e8304c855efd453ab, 6ca5de8782e67573a61a6736b6dc0ffe58dcdf59, 9298078a8f7d8181a04614a34ab655ccdf038204, 004ccd2d3b4ac36a300e05e01df152e5c02a5a82, 555a89846ed888d7401b3f7200934c0fbedcbb46, d04a179085c262c9ed577d0a4cbc6482ff1fd9a3 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.