CVE-2026-74599
Açıklama
Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: mm/ptdump: init_mm kullanılarak sayfa tablosu serbest bırakılmasına karşı her zaman kararlılık sağla Önceki commit'ler, çekirdek sayfa tablosu serbest bırakılmasının init_mm üzerinde bir mmap okuma kilidi tutulurken gerçekleştirildiği değişmezini tesis etmiştir; bu, ptdump ile init_mm üzerindeki çekirdek sayfa tablosu serbest bırakılması arasındaki yarışları düzeltir. Ancak x86 ve arm64, ptdump_walk_pgd() aracılığıyla init_mm dışındaki bir mm üzerinde ptdump gerçekleştirebilir ve çekirdek bellek aralıkları çekirdek dışı mm'ler arasında paylaşıldığından, bu durumlarda yarışın hâlâ mevcut olduğu anlamına gelir. Bunu, ptdump_walk_pgd() içinde init_mm için iç içe bir mmap yazma kilidi alarak düzeltin. Bu güvenlidir çünkü bunu mm üzerinde mmap yazma kilidi aldıktan sonra alıyoruz ve hiçbir şey keyfi bir mm'yi kilitlemeden önce init_mm kilidini önce almaz, dolayısıyla kilitlenme mümkün değildir. Ayrıca walk_page_range_debug() işlevini init_mm'in yazma kilitli olduğunu doğrulayacak şekilde güncelleyin, nedenini açıklayan bir yorum ekleyin ve bazı gereksiz kodu kaldırın, ve walk_kernel_page_table_range() işlevinin gereksiz ve kafa karıştırıcı çağrısını ortadan kaldırın. walk.mm için NULL olmayan kontrolünü güvenle kaldırabiliriz, çünkü mmap kilidi doğrulamaları NULL ise NULL işaretçi dereference hatası verirdi (ve elbette hiçbir çağıran bunu yapmaz). ptdump'un çekirdek sayfa tablosu serbest bırakılmasıyla yarışabildiği ilk nokta b6bdb7517c3d ("mm/vmalloc: add interfaces to free unmapped page table") commit'idir, bu nedenle Fixes etiketinde bunu hedefliyoruz.
Nasıl düzeltilir
- Linux Linux3c0391b9a774cc0854f3152e484a9d4835b12b40, cbd9583bb6f70733d0022a66d3546a15c76ae744, 42c9464975cf21346a8950b8ba0ac3234b385be1, 76df4edf7d61ecb711bc517ff4c20a5e85c4e9f7, b9c6d048bdfaae78d7d921b454f7de7baefaa2f0, 7f740664aec1f832953c2e6d9b8920cd6c8bcc0c, 4adc4c9a9a43d61fe476dfe10811f3df2e7e4106, 27c32e5538344b13c1505a08861e04620c125d47, 4.5, 4.10, 4.15, 4.16 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | b6bdb7517c3d3f41f20e5c2948d6bc3f8897394e ≤ v < 3c0391b9a774cc0854f3152e484a9d4835b12b40, b6bdb7517c3d3f41f20e5c2948d6bc3f8897394e ≤ v < cbd9583bb6f70733d0022a66d3546a15c76ae744, b6bdb7517c3d3f41f20e5c2948d6bc3f8897394e ≤ v < 42c9464975cf21346a8950b8ba0ac3234b385be1, b6bdb7517c3d3f41f20e5c2948d6bc3f8897394e ≤ v < 76df4edf7d61ecb711bc517ff4c20a5e85c4e9f7, b6bdb7517c3d3f41f20e5c2948d6bc3f8897394e ≤ v < b9c6d048bdfaae78d7d921b454f7de7baefaa2f0, b6bdb7517c3d3f41f20e5c2948d6bc3f8897394e ≤ v < 7f740664aec1f832953c2e6d9b8920cd6c8bcc0c, b6bdb7517c3d3f41f20e5c2948d6bc3f8897394e ≤ v < 4adc4c9a9a43d61fe476dfe10811f3df2e7e4106, b6bdb7517c3d3f41f20e5c2948d6bc3f8897394e ≤ v < 27c32e5538344b13c1505a08861e04620c125d47, 31895cfd79564111cdd5a9f48c5d491ae26a238e, 9c7f7bdb1932f8c1e5f80d32c717184701afe701, acdb4981644c8e31ccee294bdefff475c0cf587b, 0454e2fad9306961540ee7e84da47a8e345b7d22, 4.4.125 ≤ v < 4.5, 4.9.91 ≤ v < 4.10, 4.14.31 ≤ v < 4.15, 4.15.14 ≤ v < 4.16, 4.16 | 3c0391b9a774cc0854f3152e484a9d4835b12b40, cbd9583bb6f70733d0022a66d3546a15c76ae744, 42c9464975cf21346a8950b8ba0ac3234b385be1, 76df4edf7d61ecb711bc517ff4c20a5e85c4e9f7, b9c6d048bdfaae78d7d921b454f7de7baefaa2f0, 7f740664aec1f832953c2e6d9b8920cd6c8bcc0c, 4adc4c9a9a43d61fe476dfe10811f3df2e7e4106, 27c32e5538344b13c1505a08861e04620c125d47, 4.5, 4.10, 4.15, 4.16 |
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.