CVE-2024-56670
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: usb: gadget: u_serial: gs_start_io fonksiyonunun null pointer erişimi nedeniyle çökmesine yol açan sorun düzeltildi. Bazı uç durumlarda, u_serial sürücüsüne birden fazla iş parçacığı tarafından erişildiğinde; İş Parçacığı A open işlemini yürütüp gs_open fonksiyonunu çağırırken, İş Parçacığı B disconnect işlemini yürütüp gserial_disconnect fonksiyonunu çağırdığında, port->port_usb işaretçisi NULL olarak ayarlanmaktadır. Örn. İş Parçacığı A İş Parçacığı B gs_open() gadget_unbind_driver() gs_start_io() composite_disconnect() gs_start_rx() gserial_disconnect() ... ... spin_unlock(&port->port_lock) status = usb_ep_queue() spin_lock(&port->port_lock) spin_lock(&port->port_lock) port->port_usb = NULL gs_free_requests(port->port_usb->in) spin_unlock(&port->port_lock) Çökme Bu durum, gs_free_requests fonksiyonu çağrıldığında İş Parçacığı A'nın bir null pointer'a (port->port_usb null olduğunda) erişmesine ve sistemin çökmesine neden olur. Eğer port_usb NULL ise, serbest bırakma isteği gserial_disconnect tarafından gerçekleştirileceği için bu işlem atlanacaktır. Bu nedenle, port->port_usb işaretçisinin değerine erişmeye çalışmadan önce gs_start_io fonksiyonuna bir null pointer kontrolü eklenmiştir. Çağrı izi (Call trace): gs_start_io+0x164/0x25c gs_open+0x108/0x13c tty_open+0x314/0x638 chrdev_open+0x1b8/0x258 do_dentry_open+0x2c4/0x700 vfs_open+0x2c/0x3c path_openat+0xa64/0xc60 do_filp_open+0xb8/0x164 do_sys_openat2+0x84/0xf0 __arm64_sys_openat+0x70/0x9c invoke_syscall+0x58/0x114 el0_svc_common+0x80/0xe0 do_el0_svc+0x1c/0x28 el0_svc+0x38/0x68
Nasıl düzeltilir
- linux linux_kernel5.4.288, 5.10.232, 5.15.175, 6.1.121, 6.6.67, 6.12.6 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| linux linux_kernel | 2.6.27 ≤ v < 5.4.288, 5.5 ≤ v < 5.10.232, 5.11 ≤ v < 5.15.175, 5.16 ≤ v < 6.1.121, 6.2 ≤ v < 6.6.67, 6.7 ≤ v < 6.12.6, 6.13 | 5.4.288, 5.10.232, 5.15.175, 6.1.121, 6.6.67, 6.12.6 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.