CVE-2026-31466
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: mm/huge_memory: softleaf_to_folio() funksiyasında folio-nun kilidlənməməsi problemi düzəldildi arm64 serverdə aşkar edildi ki, softleaf_to_folio() funksiyasında miqrasiya girişindən alınan folio kilidlənmir. Bu problem mTHP bölünməsi və zap_nonpresent_ptes() arasındakı yarış zamanı baş verir və əsas səbəbi softleaf_to_folio() funksiyasında yaddaş baryerinin (memory barrier) olmamasıdır. Yarış aşağıdakı kimidir: CPU0 CPU1 deferred_split_scan() zap_nonpresent_ptes() folio-nu kilidləyir split_folio() unmap_folio() pte-ləri miqrasiya girişlərinə dəyişdirir __split_folio_to_order() softleaf_to_folio() quyruq səhifələri üçün bayraqları (o cümlədən PG_locked) təyin edir folio = pfn_folio(softleaf_to_pfn(entry)) smp_wmb() VM_WARN_ON_ONCE(!folio_test_locked(folio)) quyruq səhifələri üçün prep_compound_page() __split_folio_to_order() funksiyasında smp_wmb() quyruq səhifələrinin bayraqlarının, səhifə mürəkkəb (non-compound) olmadan əvvəl görünməsini təmin edir. smp_wmb() softleaf_to_folio() funksiyasında çatışmayan smp_rmb() ilə cütləşməlidir. Nəticədə, əgər zap_nonpresent_ptes() quyruq pfn-ni saxlayan miqrasiya girişinə müraciət edərsə, softleaf_to_folio() page->flags-dən əvvəl quyruq səhifəsinin yenilənmiş compound_head hissəsini görə bilər. Folio bölünməsi və zap_nonpresent_ptes() arasındakı yarış folio kilidi tutulmadan folio-nun yanlış şəkildə modifikasiyaya məruz qalmasına səbəb olduğu üçün bu problem pfn_swap_entry_folio() funksiyasında VM_WARN_ON_ONCE()-i tetikləyəcəkdir. Bu, v6.19-rc1 versiyasına daxil edilmiş 93976a20345b ("mm: eliminate further swapops predicates") commit-indən əvvəl BUG_ON() idi. Problemi həll etmək üçün softleaf_to_folio() və softleaf_to_page() funksiyalarında softleaf girişi miqrasiya girişi olduqda çatışmayan smp_rmb() əlavə edildi. [[email protected]: funksiya adı və şərhlər yeniləndi]
Necə düzəltmək olar
- linux linux_kernel5.10.253, 5.15.203, 6.1.168, 6.6.134, 6.12.81, 6.18.21, 6.19.11 və ya daha yeni versiya
- git.kernel.org/stable/c/426ee10711586617da869c8bb798214965337617
- git.kernel.org/stable/c/4c5e7f0fcd592801c9cc18f29f80fbee84eb8669
- git.kernel.org/stable/c/722cfaf6b31d31123439e67b5deac6b1261a3dea
- git.kernel.org/stable/c/7ad1997b9bc8032603df8f091761114479285769
- git.kernel.org/stable/c/7ddcf4a245c1c5a91fdd9698757e3d95179ffe41
- git.kernel.org/stable/c/8bfb8414e9f2ce6f5f2f0e3d0da52f2d132128e7
- git.kernel.org/stable/c/b8c49ad888892ad7b77062b9c102b799a3e9b4f8
- git.kernel.org/stable/c/f1acf5887c2bbaf998dc3fe32c72b7a8b84a3ddd
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | 4.5 ≤ v < 5.10.253, 5.11 ≤ v < 5.15.203, 5.16 ≤ v < 6.1.168, 6.2 ≤ v < 6.6.134, 6.7 ≤ v < 6.12.81, 6.13 ≤ v < 6.18.21, 6.19 ≤ v < 6.19.11, 7.0 | 5.10.253, 5.15.203, 6.1.168, 6.6.134, 6.12.81, 6.18.21, 6.19.11 |
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.