CVE-2023-54157

Yüksek

Açıklama

Linux kernel'da aşağıdaki güvenlik açığı giderilmiştir: binder: munmap() ile yarış durumunda meydana gelen alloc->vma serbest bırakıldıktan sonra kullanım (UAF) hatası düzeltildi [ cmllamas: 5.10 stable sürümündeki 015ac18be7de ("binder: fix UAF of alloc->vma in race with munmap()") commit'inden temiz bir ileri aktarma yapılmıştır. Liam tarafından belirtildiği üzere, a43cfc87caaf ("android: binder: stop saving a pointer to the VMA") commit'inin geri alınmasından sonra ana hatta ihtiyaç duyulmuştur. Commit günlüğü ve etiketleri bunu yansıtacak şekilde düzenlenmiştir. ] 720c24192404 ("ANDROID: binder: change down_write to down_read") numaralı commit'te binder, binder_update_page_range() içindeki alloc->vma'yı korumak için mmap okuma kilidinin yeterli olduğunu varsaymıştı. Bu durum, munmap() içerisinde vma'nın rbtree'den ayrılmasının ardından mmap_lock'un seviyesini düşüren dd2283f2605e ("mm: mmap: zap pages with read mmap_sem in munmap") commit'ine kadar doğruydu. Ardından işlem, yalnızca okuma kilidi tutulurken vma'nın yıkılmasına ve serbest bırakılmasına devam eder. Bu durum, binder_update_page_range() içindeki alloc->vma erişimlerinin artık munmap() içindeki vm_area_free() ile yarışacağı anlamına gelir ve aşağıdaki KASAN izinde gösterildiği gibi bir serbest bırakıldıktan sonra kullanım (UAF) hatasına neden olabilir: ================================================================== BUG: KASAN: use-after-free in vm_insert_page+0x7c/0x1f0 Read of size 8 at addr ffff16204ad00600 by task server/558 CPU: 3 PID: 558 Comm: server Not tainted 5.10.150-00001-gdc8dcf942daa #1 Hardware name: linux,dummy-virt (DT) Call trace: dump_backtrace+0x0/0x2a0 show_stack+0x18/0x2c dump_stack+0xf8/0x164 print_address_description.constprop.0+0x9c/0x538 kasan_report+0x120/0x200 __asan_load8+0xa0/0xc4 vm_insert_page+0x7c/0x1f0 binder_update_page_range+0x278/0x50c binder_alloc_new_buf+0x3f0/0xba0 binder_transaction+0x64c/0x3040 binder_thread_write+0x924/0x2020 binder_ioctl+0x1610/0x2e5c __arm64_sys_ioctl+0xd4/0x120 el0_svc_common.constprop.0+0xac/0x270 do_el0_svc+0x38/0xa0 el0_svc+0x1c/0x2c el0_sync_handler+0xe8/0x114 el0_sync+0x180/0x1c0 Allocated by task 559: kasan_save_stack+0x38/0x6c __kasan_kmalloc.constprop.0+0xe4/0xf0 kasan_slab_alloc+0x18/0x2c kmem_cache_alloc+0x1b0/0x2d0 vm_area_alloc+0x28/0x94 mmap_region+0x378/0x920 do_mmap+0x3f0/0x600 vm_mmap_pgoff+0x150/0x17c ksys_mmap_pgoff+0x284/0x2dc __arm64_sys_mmap+0x84/0xa4 el0_svc_common.constprop.0+0xac/0x270 do_el0_svc+0x38/0xa0 el0_svc+0x1c/0x2c el0_sync_handler+0xe8/0x114 el0_sync+0x180/0x1c0 Freed by task 560: kasan_save_stack+0x38/0x6c kasan_set_track+0x28/0x40 kasan_set_free_info+0x24/0x4c __kasan_slab_free+0x100/0x164 kasan_slab_free+0x14/0x20 kmem_cache_free+0xc4/0x34c vm_area_free+0x1c/0x2c remove_vma+0x7c/0x94 __do_munmap+0x358/0x710 __vm_munmap+0xbc/0x130 __arm64_sys_munmap+0x4c/0x64 el0_svc_common.constprop.0+0xac/0x270 do_el0_svc+0x38/0xa0 el0_svc+0x1c/0x2c el0_sync_handler+0xe8/0x114 el0_sync+0x180/0x1c0 [...] ================================================================== Yukarıdaki yarış durumunu önlemek için binder_update_page_range() içinde tekrar mmap yazma kilidi almaya dönülmüştür. Bunun mmap kilit çekişmesinde artışa yol açacağı beklenebilir; ancak binder bu çağrıları zaten üst düzey alloc->mutex aracılığıyla sıraya koymaktadır. Ayrıca, binder kıyaslama testleri çalıştırıldığında herhangi bir performans etkisi görülmemiştir.

ÖnemYüksek
CVSS7.8
İstismar olasılığı—
ÜrünLinux
Yayın24 Ara 2025
İlk görülme24 Ara 2025

Nasıl düzeltilir

Güncelleyin
  • Linux Linux1bb8a65190d45cd5c7dbc85e29b9102110cd6be6, 931ea1ed31be939c1efdbc49bc66d2a45684f9b4, ca0cc0a9c6e56c699e2acbb93d8024523021f3c3, d1d8875c8c13517f6fd1ff8d4d3e1ac366a17e07 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
Linux Linuxdd2283f2605e3b3e9c61bcae844b34f2afa4813f ≤ v < 1bb8a65190d45cd5c7dbc85e29b9102110cd6be6, dd2283f2605e3b3e9c61bcae844b34f2afa4813f ≤ v < 931ea1ed31be939c1efdbc49bc66d2a45684f9b4, dd2283f2605e3b3e9c61bcae844b34f2afa4813f ≤ v < ca0cc0a9c6e56c699e2acbb93d8024523021f3c3, dd2283f2605e3b3e9c61bcae844b34f2afa4813f ≤ v < d1d8875c8c13517f6fd1ff8d4d3e1ac366a17e07, 4.201bb8a65190d45cd5c7dbc85e29b9102110cd6be6, 931ea1ed31be939c1efdbc49bc66d2a45684f9b4, ca0cc0a9c6e56c699e2acbb93d8024523021f3c3, d1d8875c8c13517f6fd1ff8d4d3e1ac366a17e07

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.

Intelligence 360 paketinde

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.

CVE-2023-54157 · Linux · Dark Radar