CVE-2026-89533

Kritik

Təsvir

Linux nüvəsində aşağıdakı zəiflik aradan qaldırılmışdır: svcrdma: read_chunk_range funksiyasında ofset aritmetikasının düzəldilməsi svc_rdma_read_chunk_range() funksiyası, Position-Zero və ya Call chunk üçün bayt ofsetindən başlayan və müəyyən uzunluğa malik alt diapazon yaratmaq məqsədilə Read chunk-ın seqment siyahısını nəzərdən keçirir. Hər seqment üzrə dövr zamanı iki aritmetik qüsur yanlış DMA uzunluqlarına və u32 underflow-ya səbəb olur: pcl_for_each_segment(segment, chunk) { if (offset > segment->rs_length) { offset -= segment->rs_length; continue; } dummy.rs_handle = segment->rs_handle; dummy.rs_length = min_t(u32, length, segment->rs_length) - offset; dummy.rs_offset = segment->rs_offset + offset; Birincisi, ötürmə predikatında '>=' əvəzinə '>' istifadə olunub. Ofset seqmentin tam rs_length dəyərinə bərabər olduqda, seqment tamamilə istifadə edilmiş sayılır və ötürülməlidir, lakin dövr gövdəsinə keçid edir. Nəticədə yaranan dummy.rs_length dəyəri min_t(u32, length, rs_length) - rs_length olur ki, bu da length dəyəri rs_length-dən kiçik olduqda UINT_MAX-a yaxın bir u32 underflow-ya, əks halda isə sıfıra səbəb olur. İkincisi, uzunluq düsturu ofseti limitasiyadan əvvəl segment->rs_length-dən çıxarmaq əvəzinə, min_t() nəticəsindən çıxarır. offset > 0 olduqda, seqmentin qalığı rs_length deyil, rs_length - offset olur, buna görə də limitasiya qalıq uzunluğa tətbiq edilməlidir. Mövcud mötərizələmə ilə, length dəyəri rs_length - offset-dən kiçik olduqda, hər seqmentin uzunluğu length əvəzinə length - offset olur və yenidən qurulan chunk-dan ofset baytları səssizcə silinir. Yuxarıdakı sərhəd halı ilə birlikdə bu, həmçinin u32 underflow yolunu aktivləşdirir ki, bu da svc_rdma_build_read_segment() funksiyasına böyük nr_bvec və svc_rdma_get_rw_ctxt() funksiyasına çoxmiyalibaytlı kmalloc_array_node() ötürülməsinə səbəb olur. Əlavə olaraq, sonuncu Read chunk tam olaraq Call chunk-ın sonunda bitdikdə, svc_rdma_read_call_chunk() bu funksiyanı length == 0 parametri ilə çağıra bilər. Düzəldilmiş >= predikatı ilə hər bir seqment ötürülür və funksiya ilkin -EINVAL qaytararaq etibarlı sorğunu rədd edir. Uzunluq sıfır olduqda dərhal uğurlu nəticə qaytarılmalıdır. Həmçinin, sıfır uzunluqlu seqmentlərin svc_rdma_build_read_segment() funksiyasına ötürülməsinin qarşısını almaq üçün uzunluq tamamilə istifadə edildikdən sonra dövrdən çıxılmalıdır. Tam istifadə edilmiş seqmentin ötürülməsi üçün '>=' istifadə edilərək, limitasiyanın seqmentin qalıq uzunluğuna tətbiq olunması üçün '- offset' ifadəsi min_t() daxilinə köçürülərək, sıfır uzunluqlu sorğular üçün uğurlu nəticə qaytarılaraq və tələb olunan diapazon tamamlandıqda iterasiya dayandırılarak problem həll edilmişdir.

CiddilikKritik
CVSS9.8
İstismar ehtimalı—
MəhsulLinux
Dərc11 sen 2026
İlk görülmə11 sen 2026

Necə düzəltmək olar

Yeniləyin
  • Linux Linux10873311f91db9454e2fadbf9866bc819e0646d9, addbf02dfe3b25e7e38e03bbd4e2a6ed86a14be7, cba8543c18cf42fd80fd63effb6df6ff4f7e73ce, 6ee4dc7476b3abc92ec1d444533a559f33f59561, a46b35f213c2426f5d6a0458a8f7e873fc59cdfd, 4493c96bbd0068fadf69cbae8d13426202e34cdc, 4a44c140cc2f3643a39e258bb0c0ab9d0f494f5e və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
Linux Linuxd7cc73972661be4a02a1b09f1d9b3283c6c05154 ≤ v < 10873311f91db9454e2fadbf9866bc819e0646d9, d7cc73972661be4a02a1b09f1d9b3283c6c05154 ≤ v < addbf02dfe3b25e7e38e03bbd4e2a6ed86a14be7, d7cc73972661be4a02a1b09f1d9b3283c6c05154 ≤ v < cba8543c18cf42fd80fd63effb6df6ff4f7e73ce, d7cc73972661be4a02a1b09f1d9b3283c6c05154 ≤ v < 6ee4dc7476b3abc92ec1d444533a559f33f59561, d7cc73972661be4a02a1b09f1d9b3283c6c05154 ≤ v < a46b35f213c2426f5d6a0458a8f7e873fc59cdfd, d7cc73972661be4a02a1b09f1d9b3283c6c05154 ≤ v < 4493c96bbd0068fadf69cbae8d13426202e34cdc, d7cc73972661be4a02a1b09f1d9b3283c6c05154 ≤ v < 4a44c140cc2f3643a39e258bb0c0ab9d0f494f5e, 5.1110873311f91db9454e2fadbf9866bc819e0646d9, addbf02dfe3b25e7e38e03bbd4e2a6ed86a14be7, cba8543c18cf42fd80fd63effb6df6ff4f7e73ce, 6ee4dc7476b3abc92ec1d444533a559f33f59561, a46b35f213c2426f5d6a0458a8f7e873fc59cdfd, 4493c96bbd0068fadf69cbae8d13426202e34cdc, 4a44c140cc2f3643a39e258bb0c0ab9d0f494f5e

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.

Intelligence 360 paketində

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.

CVE-2026-89533 · Linux · Dark Radar