CVE-2024-27405
Təsvir
Linux kernelində aşağıdakı zəiflik aradan qaldırılıb: usb: gadget: ncm: Düzgün təhlil edilmiş NTB-lərin dataqramlarının itirilməsinin qarşısını alın Müşahidə olunur ki, bəzən Windows 11 host kimi istifadə edilərkən NCM üzərindən tethering tətbiq edildikdə, bəzi hallarda gadget_giveback düzgün NTB-nin sonuna əlavə edilmiş bir bayta malik olur. NTB təhlil edildikdə, unwrap çağırışı u_ether tərəfindən təqdim edilən SKB-də hər hansı qalıq bayt axtarır və əgər gözləyən baytlar varsa, onları ayrı NTB kimi qəbul edib təhlil edir. Lakin ikinci NTB (unwrap çağırışına görə) nasaz/korlanmış olduqda, birinci NTB-də düzgün təhlil edilmiş və rx_list-də saxlanılmış bütün dataqramlar itirilir. Bir neçə fərdi izləmə əlavə etmək aşağıdakıları göstərdi: [002] d..1 7828.532866: dwc3_gadget_giveback: ep1out: req 000000003868811a length 1025/16384 zsI ==> 0 [002] d..1 7828.532867: ncm_unwrap_ntb: K: ncm_unwrap_ntb toprocess: 1025 [002] d..1 7828.532867: ncm_unwrap_ntb: K: ncm_unwrap_ntb nth: 1751999342 [002] d..1 7828.532868: ncm_unwrap_ntb: K: ncm_unwrap_ntb seq: 0xce67 [002] d..1 7828.532868: ncm_unwrap_ntb: K: ncm_unwrap_ntb blk_len: 0x400 [002] d..1 7828.532868: ncm_unwrap_ntb: K: ncm_unwrap_ntb ndp_len: 0x10 [002] d..1 7828.532869: ncm_unwrap_ntb: K: Parsed NTB with 1 frames Bu halda giveback 1025 baytdır və blok uzunluğu 1024-dür. Qalan 1 bayt (0x00 olan) təhlil edilməyəcək və nəticədə rx_list-dəki bütün dataqramlar itiriləcək. Eyni hal 2048 ölçülü paketlər üçün də baş verir: [002] d..1 7828.557948: dwc3_gadget_giveback: ep1out: req 0000000011dfd96e length 2049/16384 zsI ==> 0 [002] d..1 7828.557949: ncm_unwrap_ntb: K: ncm_unwrap_ntb nth: 1751999342 [002] d..1 7828.557950: ncm_unwrap_ntb: K: ncm_unwrap_ntb blk_len: 0x800 Lecroy əlavə bir baytın gəldiyini göstərir və bununla baytın PC-dən gəldiyini təsdiqləyir: Transfer 2959 - Bytes Transferred(1025) Timestamp((18.524 843 590) - Transaction 8391 - Data(1025 bytes) Timestamp(18.524 843 590) --- Packet 4063861 Data(1024 bytes) Duration(2.117us) Idle(14.700ns) Timestamp(18.524 843 590) --- Packet 4063863 Data(1 byte) Duration(66.160ns) Time(282.000ns) Timestamp(18.524 845 722) Windows sürücüsünə görə, wBlockLength sıfırdan fərqli olduqda ZLP-yə ehtiyac yoxdur, çünki sıfırdan fərqli wBlockLength artıq funksiya tərəfinə gözlənilən ötürmə ölçüsünü bildirmişdir. Lakin bazarda olan bəzi NCM cihazları wBlockLength wMaxPacketSize-in qatı olduğu müddətcə ZLP-yə güvənirlər. Belə cihazlarla işləmək üçün sona əlavə 0 doldurulur ki, ötürmə artıq wMaxPacketSize-in qatı olmasın.
Necə düzəltmək olar
- linux linux_kernel4.19.308, 5.4.270, 5.10.211, 5.15.150, 6.1.80, 6.6.19, 6.7.7 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | 2.6.38 ≤ v < 4.19.308, 4.20 ≤ v < 5.4.270, 5.5 ≤ v < 5.10.211, 5.11 ≤ v < 5.15.150, 5.16 ≤ v < 6.1.80, 6.2 ≤ v < 6.6.19, 6.7 ≤ v < 6.7.7, 6.8 | 4.19.308, 5.4.270, 5.10.211, 5.15.150, 6.1.80, 6.6.19, 6.7.7 |
| debian debian_linux | 10.0 | — |
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.