CVE-2025-39758

Kritik

Təsvir

Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: RDMA/siw: siw_tcp_sendpages funksiyasında sendmsg bayt sayını düzəltmək c2ff29e99a76 ("siw: Inline do_tcp_sendpages()") kommitindən bəri biz bunu edirdik: static int siw_tcp_sendpages(struct socket *s, struct page **page, int offset, size_t size) [...] /* Xüsusi olaraq bu səhifə üçün göndərilməli olan baytların sayını hesablayın */ size_t bytes = min_t(size_t, PAGE_SIZE - offset, size); /* Əgər onu splice edə bilmiriksə, normal şəkildə kopyalayın */ if (!sendpage_ok(page[i])) msg.msg_flags &= ~MSG_SPLICE_PAGES; /* Səhifəyə işarə edən bvec-i təyin edin, uzunluğu $bytes olsun */ bvec_set_page(&bvec, page[i], bytes, offset); /* Iter-i $size-ə, yəni bütün sendpages ölçüsünə təyin edin (!!!) */ iov_iter_bvec(&msg.msg_iter, ITER_SOURCE, &bvec, 1, size); try_page_again: lock_sock(sk); /* $size ölçüsü ilə Sendmsg (!!!) */ rv = tcp_sendmsg_locked(sk, &msg, size); Bu o deməkdir ki, bir müddətdir həddindən artıq böyük iov_iter-lər və tcp_sendmsg çağırışları göndərirdik. sendpage_ok() hər zaman doğru (true) qaytardığı üçün bu, ciddi olmayan bir xəta idi. Lakin "next" versiyasına tədricən daxil edilən yeni slab allocator dəyişiklikləri (hansı ki, böyük kmalloc ayırmalarında sendpage-ə icazə vermir) səbəbindən, MSG_SPLICE_PAGES və "adi" kopyalama yolları arasındakı iov_iter davranışındakı kiçik fərqlərə görə son vaxtlar sərhədlərdən kənar (out-of-bounds) çökmələr baş vermişdir: (MSG_SPLICE_PAGES) skb_splice_from_iter iov_iter_extract_pages iov_iter_extract_bvec_pages hər yerdə OoB olmadan düzgün dayanmaq üçün i->nr_segs istifadə edir skb_splice_from_iter "qısa" oxuma əldə edir (!MSG_SPLICE_PAGES) skb_copy_to_page_nocache copy=iov_iter_count [...] copy_from_iter /* bu kömək etmir */ if (unlikely(iter->count < len)) len = iter->count; iterate_bvec ... və biz bvec-lərin sərhədini aşırıq Bu problem, iov_iter-in bayt sayının düzgün təyin edilməsi və tcp_sendmsg_locked funksiyasına düzgün bayt sayının göndərilməsi ilə həll edilmişdir.

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

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel6.6.103, 6.12.43, 6.15.11, 6.16.2 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel6.5 ≤ v < 6.6.103, 6.7 ≤ v < 6.12.43, 6.13 ≤ v < 6.15.11, 6.16 ≤ v < 6.16.26.6.103, 6.12.43, 6.15.11, 6.16.2

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.