CVE-2026-74269
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: bnxt: XDP head-grow zamanı başlığın alt axınına (underflow) düzəliş edildi xdp.py testinin test_xdp_native_adjst_head_grow_data hissəsi bnxt maşınında (həmçinin NIPA-da) işlədilərkən çökür. Görünən odur ki, xəta skb başlığını quran bnxt_rx_multi_page_skb funksiyasındakı alt axındır: napi_build_skb(data_ptr - bp->rx_offset, rxr->rx_page_size); Bu ifadədəki problem ondadır ki, səhifə rejimində rx_offset belədir: bp->rx_offset = NET_IP_ALIGN + XDP_PACKET_HEADROOM; Bu, (ən azı x86_64-də) 258 kimi hesablanır. test_xdp_native_adjst_head_grow_data testi başlığın -256 vahid tənzimləndiyi halı yoxlayır. Bu test işlədikdə, data_ptr frag_start + 2 ünvanına sürüşdürülür (burada frag_start = page_address(page) + offset). Sonra bnxt_rx_multi_page_skb çağırılır və napi_build_skb ifadəsi 258 çıxır, nəticədə frag_start-dan əvvəlki ünvana çatır. Offset < 256 olduqda (məsələn, fraqment offset 0-dan başladıqda), bu, ya əvvəlki fraqment, ya da əvvəlki fiziki səhifə ola bilər. skb azad edildikdə, səhifə hovuzu (page pool) fraqment istinadı ya yanlış səhifədə, ya da düzgün səhifənin yanlış fraqmentində silinir. Hər iki halda, korlanmış istinad sayı səhifənin hələ də istifadə edildiyi halda vaxtından əvvəl təkrar istifadəsinə (recycle) səbəb ola bilər. Səhvən təkrar istifadə edildikdən sonra o, yenidən təyin edilə bilər və drayverin ləğvi zamanı bu, double free xətasına gətirib çıxarar. Düzəliş edilən commit yerli səhifə ölçüsünün >= 64k olduğu halı idarə etmək üçün bu kodu yeniləmişdi, lakin qeyri-ixtiyari olaraq head grow halını sıradan çıxarmışdı. Bunu düzəltmək üçün struct bnxt_sw_rx_agg_bd strukturundakı mövcud offset sahəsini əks etdirən bir offset sahəsi struct bnxt_sw_rx_bd strukturuna əlavə edin. Onu ayırma (allocation) zamanı doldurun və təkrar istifadə zamanı saxlayın. bnxt_rx_multi_page_skb funksiyasında fraqment başlanğıcını hesablamaq üçün yeni əlavə edilmiş offset sahəsindən istifadə edin və bunu napi_build_skb-yə ötürün. Layout-nu skb_reserve ilə tənzimləyin. İki hal var: tənzimlənməmiş hal və tənzimlənmiş hal. Hər iki halda, yerli səhifə ölçüsü >= 64K olduğu halı nəzərə almaq üçün skb page_address(page) + offset ünvanında qurulur və skb_reserve data_ptr - (page_address(page) + offset) ilə çağırılır. Bu fərq, data_ptr hərəkət etmədikdə bp->rx_offset-ə, XDP başlığı tənzimlədikdə isə bp->rx_offset + xdp_adjust-a bərabərdir. Uğursuz testin bu commit tətbiq edildikdən sonra yenidən işlədilməsi testin uğurla tamamlanmasına səbəb olur. Digər rx_skb_func tətbiqlərində bu problem yoxdur.
Necə düzəltmək olar
- Linux Linux59f6211c006cb5936b443fb396eb43864ca21ed5, 3e8f3959a7fd28461b8cd9708c21286b4250b77a, ff34e5a26a26c92142afea11455e259c4c4c617b, 4c03275bc4435cc8e25f7f3f08aff58c0e783d8d, bb72b1c6755631c74b7e0878ee55bb81c06776c0, e26657fe3b85c068b01f42bb0c602f242d643ba9, 6.1.191, 6.5 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | e9f11bfc03fb0d3c86f91b8ae945bb10f7e19c16 ≤ v < 59f6211c006cb5936b443fb396eb43864ca21ed5, f6974b4c2d8e1062b5a52228ee47293c15b4ee1e ≤ v < 3e8f3959a7fd28461b8cd9708c21286b4250b77a, f6974b4c2d8e1062b5a52228ee47293c15b4ee1e ≤ v < ff34e5a26a26c92142afea11455e259c4c4c617b, f6974b4c2d8e1062b5a52228ee47293c15b4ee1e ≤ v < 4c03275bc4435cc8e25f7f3f08aff58c0e783d8d, f6974b4c2d8e1062b5a52228ee47293c15b4ee1e ≤ v < bb72b1c6755631c74b7e0878ee55bb81c06776c0, f6974b4c2d8e1062b5a52228ee47293c15b4ee1e ≤ v < e26657fe3b85c068b01f42bb0c602f242d643ba9, ae0e135dc900827687ecc684c2bbb57aae48d318, 6.1.45 ≤ v < 6.1.191, 6.4.10 ≤ v < 6.5, 6.5 | 59f6211c006cb5936b443fb396eb43864ca21ed5, 3e8f3959a7fd28461b8cd9708c21286b4250b77a, ff34e5a26a26c92142afea11455e259c4c4c617b, 4c03275bc4435cc8e25f7f3f08aff58c0e783d8d, bb72b1c6755631c74b7e0878ee55bb81c06776c0, e26657fe3b85c068b01f42bb0c602f242d643ba9, 6.1.191, 6.5 |
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.