CVE-2026-97569
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: bnxt_en: Təxirə salınmış tamamlamalarla növbənin dayanmasının qarşısının alınması Drayver paketlərin sürətli axınına (burst) məruz qaldıqda, tamamlamaları təxirə salmaq üçün bir BD-ni NO_CMPL biti ilə işarələyə bilər. Gözlənti ondan ibarətdir ki, halqadakı sonuncu paketin bu biti təmizlənmiş olacaq və həmin paket tərəfindən yaradılan tamamlama həm həmin paketi, həm də ondan əvvəlkiləri təmizləyəcəkdir. Bu, tetiklenen tamamlamaların sayını azaltmağa kömək edir. Basdırılmış tamamlamalar drayver tərəfindən idarə olunur və basdırılmış tamamlamalara malik paketlərin sayı halqanın ölçüsü ilə mütənasib şəkildə artır. Digər tərəfdən, SW USO paketlərinin istehlak edilə bilən maksimum BD-lərin sayına yuxarı limiti var və bu limit halqa ölçüsü ilə mütənasib deyil. Beləliklə, kiçik halqalar üçün belə bir hal mümkündür: drayverə paketlərin sürətli axını gəlir, boş deskriptorların sayı drayverdəki həddindən yuxarıda qaldığı üçün drayver bütün paketlər üçün tamamlamaları təxirə salır. Sonra USO paketi gəlir, lakin mövcud BD-lərin sayı kifayət etmir və USO kodu vaxtından əvvəl çıxış edir. Bu halda, halqa tamamlamaları basdırılmış paketlərlə dolmuş bir vəziyyətə düşür ki, bu da növbənin dayanmasına və heç vaxt yenidən başladılmamasına səbəb ola bilər. Default CONFIG_MAX_SKB_FRAGS nəzərə alındıqda, bu yalnız kiçik halqalar üçün (<= 457 deskriptor, drayverin standart dəyərindən aşağı), paketlərin sürətli axını halqanı doldurduqda və ardınca yerləşə bilməyən böyük USO paketi gəldikdə mümkündür. Daha böyük halqalar üçün tamamlamaların basdırılması həddi ilə SW USO üçün tələb olunan BD-lər arasındakı fərq kifayət qədər böyükdür ki, tamamlamalar tetiklensin və bu vəziyyət baş verməsin. Bu problem Sashiko tərəfindən qeyd edilmişdir və bunu tetikləmək üçün növbə ölçüsünün kiçik olması tələb olunduğundan ehtimal az görünsə də, bu həqiqətən mümkündür. Bu problem, tamamlamaları təxirə salan sonuncu BD-nin izlənilməsi və "doorbell"in nə vaxt çalınacağına dair məntiqin mərkəzləşdirilməsi ilə həll edilmişdir. Artıq NO_CMPL biti bnxt_txr_db_kick() funksiyasında təmizlənir, beləliklə, SW USO erkən çıxışı da daxil olmaqla bütün doorbell sahələri əhatə olunur. Bu, halqanın həmişə onu təmizləyən və növbəni oyadan tamamlama yaradan bir BD ilə bitməsini təmin edir.
Necə düzəltmək olar
- Linux Linuxe33ce547c0cd40738d6bad23e5fc0539ee3e8f7d, 39b23c1c40e1f73d2b94a09282cc476af647e438 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | cc5d90667db81474ed7a92a1b2fa3daec5559307 ≤ v < e33ce547c0cd40738d6bad23e5fc0539ee3e8f7d, cc5d90667db81474ed7a92a1b2fa3daec5559307 ≤ v < 39b23c1c40e1f73d2b94a09282cc476af647e438, 7.1 | e33ce547c0cd40738d6bad23e5fc0539ee3e8f7d, 39b23c1c40e1f73d2b94a09282cc476af647e438 |
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.