CVE-2023-53667

Orta

Təsvir

Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: net: cdc_ncm: dwNtbOutMaxSize dəyərinin həddindən çox aşağı olması halının tənzimlənməsi Hazırda cdc_ncm_check_tx_max() funksiyasında, əgər dwNtbOutMaxSize hesablanmış "min" dəyərindən kiçik, lakin sıfırdan böyükdürsə, məntiq tx_max dəyərini dwNtbOutMaxSize-ə bərabər edir. Daha sonra bu dəyərdən bütün məlumatların idarə olunduğu cdc_ncm_fill_tx_frame() funksiyasında yeni SKB ayırmaq üçün istifadə olunur. dwNtbOutMaxSize-in kiçik dəyərləri üçün alloc_skb(dwNtbOutMaxSize, GFP_ATOMIC) zamanı ayrılan yaddaş, ölçünün ayırma anında hizalanma qaydasına görə eyni ölçüyə malik olacaqdır: size = SKB_DATA_ALIGN(size); size += SKB_DATA_ALIGN(sizeof(struct skb_shared_info)); Beləliklə, biz 2be6d4d16a084 ("net: cdc_ncm: Allow for dwNtbOutMaxSize to be unset or zero") commit-i ilə aradan qaldırmağa çalışdığımız eyni xətaya rast gəlirik. dwNtbOutMaxSize-in aşağı dəyərləri hazırda problem yaratmır, çünki alloc_skb() zamanı yalnız SKB başlıqları üçün tələb olunan yaddaşdan (320b) daha çox yaddaş (512b) ayrılır və bu da CDC məlumatları (172b) üçün müəyyən boşluq (512b - 320b = 192b) saxlayır. Lakin, əgər SKB başlıq strukturlarından birinə, məsələn 'struct skb_shared_info'-ya daha çox element (məsələn 3 x u64 = [24b]) əlavə edilərsə və onun orijinal ölçüsü (320b [320b hizalanmış]) daha böyük bir dəyərə (344b [384b hizalanmış]) artarsa, onda CDC məlumatları (172b) artıq ehtiyat SKB məlumat sahəsinə (512b - 384b = 128b) sığmayacaqdır. Nəticədə, SKB sərhəd yoxlama semantikası uğursuz olur və panic baş verir: skbuff: skb_over_panic: text:ffffffff831f755b len:184 put:172 head:ffff88811f1c6c00 data:ffff88811f1c6c00 tail:0xb8 end:0x80 dev:<NULL> ------------[ cut here ]------------ kernel BUG at net/core/skbuff.c:113! invalid opcode: 0000 [#1] PREEMPT SMP KASAN CPU: 0 PID: 57 Comm: kworker/0:2 Not tainted 5.15.106-syzkaller-00249-g19c0ed55a470 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/14/2023 Workqueue: mld mld_ifc_work RIP: 0010:skb_panic net/core/skbuff.c:113 [inline] RIP: 0010:skb_over_panic+0x14c/0x150 net/core/skbuff.c:118 [snip] Call Trace: <TASK> skb_put+0x151/0x210 net/core/skbuff.c:2047 skb_put_zero include/linux/skbuff.h:2422 [inline] cdc_ncm_ndp16 drivers/net/usb/cdc_ncm.c:1131 [inline] cdc_ncm_fill_tx_frame+0x11ab/0x3da0 drivers/net/usb/cdc_ncm.c:1308 cdc_ncm_tx_fixup+0xa3/0x100 dwNtbOutMaxSize-in həddindən çox aşağı olan dəyərləri tənzimlənmişdir və onlar [USB_CDC_NCM_NTB_MIN_OUT_SIZE, CDC_NCM_NTB_MAX_SIZE_TX] diapazonuna məhdudlaşdırılmışdır. dwNtbOutMaxSize-in USB_CDC_NCM_NTB_MIN_OUT_SIZE-dən kiçik olmadığına əmin olaraq, CDC məlumatlarını emal etmək üçün kifayət qədər məlumat sahəsinin ayrılmasını təmin edirik.

CiddilikOrta
CVSS5.5
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc7 okt 2025
İlk görülmə7 okt 2025

Necə düzəltmək olar

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
linux linux_kernel3.16 ≤ v < 4.14.317, 4.15 ≤ v < 4.19.285, 4.20 ≤ v < 5.4.245, 5.5 ≤ v < 5.10.181, 5.11 ≤ v < 5.15.114, 5.16 ≤ v < 6.1.31, 6.2 ≤ v < 6.3.5, 6.44.14.317, 4.19.285, 5.4.245, 5.10.181, 5.15.114, 6.1.31, 6.3.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.

Intelligence 360 paketində

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.

CVE-2023-53667 · Linux Kernel · Dark Radar