CVE-2026-90018
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: staging: rtl8723bs: rtw_get_wps_attr() funksiyasında OOB oxuma / stek bufer daşması düzəldildi rtw_get_wps_attr() simsiz idarəetmə freymindən götürülmüş WPS IE daxilindəki WPS atributlarını yoxlayır. Hər bir namizəd atribut üçün o, yalnız sabit 4 baytlıq atribut başlığının (2 baytlıq ID + 2 baytlıq uzunluq) IE daxilinə sığdığını yoxlayır: if (attr_ptr + 4 > wps_ie + wps_ielen) break; u16 attr_id = get_unaligned_be16(attr_ptr); u16 attr_data_len = get_unaligned_be16(attr_ptr + 2); u16 attr_len = attr_data_len + 4; attr_data_len (və buna görə də attr_len) birbaşa şəbəkədən oxunur və aşağıdakı əməliyyatda ölçü kimi istifadə edilməzdən əvvəl IE-də qalan baytlara qarşı heç vaxt yoxlanılmır: memcpy(buf_attr, attr_ptr, attr_len); attr_len tamamilə hücum edən tərəf tərəfindən idarə olunduğu üçün (0-dan 65535+4-ə qədər), bu həm wps_ie-nin heap OOB oxumasına, həm də daha ciddi şəkildə, buf_attr-ın tək baytlıq stek dəyişəni olduğu bir neçə çağırış nöqtəsində stek bufer daşmasına səbəb olur; məsələn, rtw_get_wps_attr_content() funksiyasının çağıranları WPS_ATTR_SELECTED_REGISTRAR parametrini stekdəki "u8 sr"/"u8 selected_registrar" dəyişəninə ötürür (drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c, drivers/staging/rtl8723bs/core/rtw_mlme_ext.c). Beləliklə, skanlama zamanı emal edilən beacon və ya probe response-da yerləşdirilmiş xüsusi hazırlanmış WPS IE analiz edən axının (thread) stekini sıradan çıxara bilər. rtw_get_wps_attr_content() funksiyasının özünün müstəqil uzunluq yoxlaması yoxdur və sadəcə rtw_get_wps_attr()-dan aldığı attr_len dəyərinə etibar edir, ona görə də burada sərhədin düzəldilməsi həmin çağırıcı funksiyanı da düzəldir. Yuxarıdakı "attr_ptr + 4 > wps_ie + wps_ielen" başlıq yoxlaması 1463ca3ec6601 ("staging: rtl8723bs: fix OOB reads in rtw_get_sec_ie(), rtw_get_wapi_ie(), and rtw_get_wps_attr()") commit-i ilə əlavə edilmişdi; bu, sabit başlığı məhdudlaşdırırdı, lakin yoxlamanı ondan sonrakı dəyişkən uzunluqlu atribut məlumatlarını əhatə etmək üçün genişləndirməmişdi. attr_len memcpy() uzunluğu kimi istifadə edilməzdən və ya uyğunluq kimi qəbul edilməzdən əvvəl çatışmayan həmin yoxlama əlavə edildi.
Necə düzəltmək olar
- Linux Linux931640dfcb8cfa08f6cfb46229716d8072356420, 3a6457ebf39080b87c712657fdb38f34a24fc3ff, fd5e24ea8373347d0352f153a66e8647337d1b10, a53d1ac9ce63db07943b2b2248111003851fb00f, ff61aa3289355dafa811550a1764691cd1f5d33b, 34f51d196c43a42046d229de5e79025d5ca553ca, 99aa998dec83ba180822f70e6d48a514fc81c20d və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | 554c0a3abf216c991c5ebddcdb2c08689ecd290b ≤ v < 931640dfcb8cfa08f6cfb46229716d8072356420, 554c0a3abf216c991c5ebddcdb2c08689ecd290b ≤ v < 3a6457ebf39080b87c712657fdb38f34a24fc3ff, 554c0a3abf216c991c5ebddcdb2c08689ecd290b ≤ v < fd5e24ea8373347d0352f153a66e8647337d1b10, 554c0a3abf216c991c5ebddcdb2c08689ecd290b ≤ v < a53d1ac9ce63db07943b2b2248111003851fb00f, 554c0a3abf216c991c5ebddcdb2c08689ecd290b ≤ v < ff61aa3289355dafa811550a1764691cd1f5d33b, 554c0a3abf216c991c5ebddcdb2c08689ecd290b ≤ v < 34f51d196c43a42046d229de5e79025d5ca553ca, 554c0a3abf216c991c5ebddcdb2c08689ecd290b ≤ v < 99aa998dec83ba180822f70e6d48a514fc81c20d, 4.12 | 931640dfcb8cfa08f6cfb46229716d8072356420, 3a6457ebf39080b87c712657fdb38f34a24fc3ff, fd5e24ea8373347d0352f153a66e8647337d1b10, a53d1ac9ce63db07943b2b2248111003851fb00f, ff61aa3289355dafa811550a1764691cd1f5d33b, 34f51d196c43a42046d229de5e79025d5ca553ca, 99aa998dec83ba180822f70e6d48a514fc81c20d |
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.