CVE-2026-80810
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: io_uring/rsrc: io_vec_fill_bvec() funksiyasında folio ölçüsünün daşma xətası düzəldildi io_vec_fill_bvec() folio ölçüsünü adi int 1 ilə hesablayır: unsigned long folio_size = 1 << imu->folio_shift; imu->folio_shift unsigned int tipindədir və qeydiyyata alınmış buferi dəstəkləyən folionun folio_shift() funksiyasından gəlir, buna görə də 64 bitlik kernel-də 32 və ya daha çox ola bilər. Int 1-in bu qədər sürüşdürülməsi təyin edilməmişdir (undefined), x86 və arm64-də isə say modulo 32 olaraq götürülür, beləliklə 34-lük sürüşdürmə 16G əvəzinə 4 nəticəsini verir. Bu fayldakı digər bütün folio_shift sürüşdürmələri artıq 1UL istifadə edir. Nəticə etibarilə seqment təxmini və doldurma dövrü bir-birinə uyğun gəlmir. io_estimate_bvec_size() bvec massivinin ölçüsünü real sürüşdürmə ilə müəyyən edir: max_segs += (iov[i].iov_len >> shift) + 2; beləliklə, 16G folioda olan 1M iovec üçün 2 seqment ayrılır, lakin io_vec_fill_bvec() həmin iovec-i 4 baytlıq folio_size hissələrlə keçir və res_bvec[bvec_idx]-ə ona verilən massivin sonundan kənara çıxmaqla dördb yüz min dəfə yazı yazır. Həmçinin hər iterasiyada src_bvec irəli çəkilir, buna görə də eyni zamanda imu->bvec onun sonundan kənarda oxunur. validate_fixed_range() yalnız diapazonun qeydiyyata alınmış buferin daxilində olduğunu yoxlayır və seqment sayını məhdudlaşdırmır. Buna nail olmaq üçün sürüşdürməsi ən azı 32 olan folio lazımdır ki, bu da nəhəng hugetlb səhifəsi deməkdir: 64K səhifələri olan arm64-də 16G, burada CONT_PMD_SHIFT 34-dür və hugetlb_add_hstate(CONT_PMD_SHIFT - PAGE_SHIFT) həmin ölçünü qeydiyyatdan keçirir, eynilə powerpc-də də belədir. x86_64 maksimum 1G-yə çatır, yəni 30-luq sürüşdürmə olur ki, bu da hələ də int tipinə sığır və təsirlənmir. Faylın qalan hissəsində olduğu kimi 1UL istifadə edin.
Necə düzəltmək olar
- Linux Linux45c945107e007b1fb73e21cd220277652a45521a, 6b308c37fbeba3aa8c634fb1ed53e2f63a5d5a5c, 3267d7c8ba51642117f7bdd1ece02b2540668476, 3f3a6a16bbe8bde76532d9415438f8cdef439e5d və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | 9ef4cbbcb4ac3786a1a4164507511b76b2a572c5 ≤ v < 45c945107e007b1fb73e21cd220277652a45521a, 9ef4cbbcb4ac3786a1a4164507511b76b2a572c5 ≤ v < 6b308c37fbeba3aa8c634fb1ed53e2f63a5d5a5c, 9ef4cbbcb4ac3786a1a4164507511b76b2a572c5 ≤ v < 3267d7c8ba51642117f7bdd1ece02b2540668476, 9ef4cbbcb4ac3786a1a4164507511b76b2a572c5 ≤ v < 3f3a6a16bbe8bde76532d9415438f8cdef439e5d, 6.15 | 45c945107e007b1fb73e21cd220277652a45521a, 6b308c37fbeba3aa8c634fb1ed53e2f63a5d5a5c, 3267d7c8ba51642117f7bdd1ece02b2540668476, 3f3a6a16bbe8bde76532d9415438f8cdef439e5d |
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.