CVE-2025-68795
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: ethtool: statistika sorğusu zamanı istifadəçi sahəsi buferinin daşmasının qarşısının alınması ethtool -S əmri üç ioctl çağırışı vasitəsilə işləyir: ölçü üçün ETHTOOL_GSSET_INFO, adlar üçün ETHTOOL_GSTRINGS və dəyərlər üçün ETHTOOL_GSTATS. Əgər bu çağırışlar arasında statistikaların sayı dəyişərsə (məsələn, cihazın yenidən konfiqurasiyası səbəbindən), istifadəçi sahəsinin bufer ayırması yanlış olacaq ki, bu da potensial olaraq bufer daşmasına səbəb ola bilər. Drayverlərdən ümumiyyətlə sabit statistika sayını saxlamaq gözlənilir, lakin bəzi drayverlər (məsələn, mlx5, bnx2x, bna, ksz884x) dinamik sayğaclardan istifadə edir ki, bu da həmin ssenarini mümkün edir. Bəzi drayverlər bunu daxili şəkildə idarə etməyə çalışır: - bnad_get_ethtool_stats(), stats.n_stats drayverin statistika sayına bərabər olmadıqda erkən geri dönür. - micrel/ksz884x həmçinin stats.n_stats-dan kənara heç nə yazmadığına və buferi daşırmadığına əmin olur. Lakin hər ikisi artıq get_sset_count()-dan qaytarılan dəyərlə təyin edilmiş stats.n_stats-dan istifadə edir, buna görə də burada təsvir olunan problemi həll etmir. Bufer daşmasının qarşısını almaq üçün ethtool_get_strings(), ethtool_get_stats(), ethtool_get_phy_stats() funksiyaları elə dəyişdirildi ki, istifadəçi sahəsinin ölçüsü ilə get_sset_size() arasında uyğunsuzluq olduqda heç bir məlumat qaytarmasın. Qaytarılan n_stats dəyəri, heç nənin qaytarılmadığını əks etdirmək üçün sıfıra bərabər olacaqdır. Upstream ethtool istifadə edildikdə, ölçü dəyişikliyinin nə vaxt aşkar edilməsindən asılı olaraq iki hal baş verə bilər: 1. ethtool_get_strings()-də aşkar edildikdə: # ethtool -S eth2 no stats available 2. Statistika alınarkən aşkar edildikdə, bütün statistikalar sıfır kimi hesabat veriləcək. Hər iki halın müvəqqəti olduğu ehtimal edilir və növbəti ethtool çağırışı uğurlu olmalıdır. Daşmanın qarşısının alınmasından əlavə, bu iki hal çox aydın görünür (çıxış yoxdur/statistikalar təmizlənib), ki, bu da yanlış/sürüşmüş statistikaların təqdim edilməsindən daha yaxşıdır. Mən "səssiz" cavab əvəzinə xəta qaytarmağı da nəzərdən keçirdim, lakin bu, istifadəçi sahəsi tətbiqləri üçün daha zərərli görünür. Qeydlər: - Bu yamama daxili yarış şəraitini (race condition) düzəltməyi iddia etmir, o yalnız istifadəçi sahəsi buferinin daşmadığından əmin olur və daha proqnozlaşdırıla bilən davranış yaradır. - Hər bir ioctl zamanı RTNL kilidi saxlanılır, yarış pəncərəsi kilidin buraxıldığı ayrı-ayrı ioctl çağırışları arasında mövcuddur. - İstifadəçi sahəsi ethtool həmişə stats.n_stats-ı doldurur, lakin ehtimal olunur ki, bu statistika ioctl-ləri digər istifadəçi sahəsi tətbiqlərində tətbiq edilib və onlar bunu doldurmaya bilər. Əlavə edilmiş kod, hər hansı reqressiyanın qarşısını almaq üçün onun sıfır olmadığını yoxlayır.
Necə düzəltmək olar
- Linux Linux3df375a1e75483b7d973c3cc2e46aa374db8428b, f9dc0f45d2cd0189ce666288a29d2cc32c2e44d5, 4afcb985355210e1688560dc47e64b94dad35d71, ca9983bc3a1189bd72f9ae449d925a66b2616326, 7bea09f60f2ad5d232e2db8f1c14e850fd3fd416, 4066b5b546293f44cd6d0e84ece6e3ee7ff27093, 7b07be1ff1cb6c49869910518650e8d0abc7d25f və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 3df375a1e75483b7d973c3cc2e46aa374db8428b, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < f9dc0f45d2cd0189ce666288a29d2cc32c2e44d5, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 4afcb985355210e1688560dc47e64b94dad35d71, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < ca9983bc3a1189bd72f9ae449d925a66b2616326, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 7bea09f60f2ad5d232e2db8f1c14e850fd3fd416, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 4066b5b546293f44cd6d0e84ece6e3ee7ff27093, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 7b07be1ff1cb6c49869910518650e8d0abc7d25f, 2.6.12 | 3df375a1e75483b7d973c3cc2e46aa374db8428b, f9dc0f45d2cd0189ce666288a29d2cc32c2e44d5, 4afcb985355210e1688560dc47e64b94dad35d71, ca9983bc3a1189bd72f9ae449d925a66b2616326, 7bea09f60f2ad5d232e2db8f1c14e850fd3fd416, 4066b5b546293f44cd6d0e84ece6e3ee7ff27093, 7b07be1ff1cb6c49869910518650e8d0abc7d25f |
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.