
Yeni bir Linux çekirdeğindeki karmaşık bir kullanımdan bağımsız (UAF) güvenlik açığından yararlanma tekniği, kök ayrıcalıkları elde etmek için modern güvenlik azaltmalarını başarıyla atlar.
Yöntem, karmaşıklığı için bir PWNIE ödülü ile tanınan AF_VSOCK alt sisteminde, atılması zor bir yarış koşulu hatası olan CVE-2024-50264’ü hedefliyor. Linux V4.8’de tanıtılan güvenlik açığı, sömürü için önemli zorluklar sunmaktadır.
Alexander Popov’a göre, müstakil olmayan bir kullanıcı hatayı tetikleyebilir, ancak kararsız bir yarış koşulu, hafıza yolsuzluğu için son derece kısa bir zaman penceresi ve deneme sırasında çekirdeğin çarpması için birçok yol da dahil olmak üzere ciddi sınırlamalarla birlikte gelir.
Orijinal istismar stratejisi, büyük ölçekli bellek spreyleri ve slüm ve kirli paget gibi gelişmiş teknikleri içeren oldukça karmaşıktı.
Linux Çekirdek Kullanımdan Ardından Güvenlik Açığı
Daha basit bir yol arayan araştırmacı, msg_msg
Çekirdek nesnesi. Yeni yöntemin çekirdeği, bir msg_msg
Çekirdeğin asmasına neden olmadan nesne.
Tipik olarak, bir işaretçi alanı nedeniyle bu nesneye bir UAF yazma başarısız olur, m_list.prev
Çekirdek bir spinlock almaya çalıştığında bir sistemin asmasına neden olur.
Araştırmacının çözümü, mesaj kuyruğunun akıllıca manipülasyonunu içerir:
- Mesaj kuyruğu neredeyse kapasiteye doldurulur ve sadece birkaç bayt boş alan bırakır.
- Daha sonra istismar hedefi göndermeye çalışır
msg_msg
nesneler. Kuyruk dolu olduğu için, çekirdek nesneleri tahsis eder, ancakmsgsnd()
Sistem çağrısı, boşluk beklemeye zorlamak. - Sistem çağrısı engellenirken, UAF tetiklenir ve bekleyen alanları bozar
msg_msg
nesne. - Son olarak, mesaj kuyruğunda alan serbest bırakılır ve engellenen sistem çağrısının devam etmesine izin verir. Çekirdek daha sonra bozuk olanı eklemeye devam eder
msg_msg
Kuyruğuna nesne, süreçteki bozuk liste işaretçilerini uygun şekilde düzeltir ve bir kazadan kaçının.

Bu teknik, önceki çekirdek bilgi sızıntısına ihtiyaç duymadan, zor koşullar altında bile bir UAF yazımından güvenilir bir şekilde istismar ilkel yaratır.
Çekirdek savunmalarını atlamak
Saldırıyı başarıyla yürütmek için, diğer bazı engellerin üstesinden gelinmesi gerekiyordu.
Araştırmacı, serbest bırakmanın yerini almak için bir önbellek saldırısı kullandı virtio_vsock_sock
İle nesne msg_msg
nesne, çekirdek sertleştirme özelliklerinin etrafında gezinme gibi CONFIG_RANDOM_KMALLOC_CACHES
. UAF yazımı da bu saldırının güvenilir bir şekilde çalışması için çok hızlı bir şekilde meydana geldi.

Bunu çözmek için, sorumlu çekirdek işçisini bildirimlerle ezerek yavaşlatmak için bir teknik kullanıldı. timerfd
Ve epoll
Alexander, yarış penceresini önemli ölçüde genişleten örnekler.
Bu msg_msg
Yolsuzluk, sürecin kimlik bilgilerinin adresini içeren sınırsız okunan, sızan çekirdek belleği elde etmek için kullanıldı (struct cred
).
Bu bilgilerle, bir pipe_buffer
Rasgele Adres Kazanma Nesnesi Okuma ve yazma yetenekleri.
Bu, saldırganın işlem kimlik bilgilerini doğrudan değiştirmesine ve yalnızca veri saldırısını tamamlayarak kökten ayrıcalıkları artırmasına izin verdi.
Tüm istismar geliştirme süreci kullanılarak rafine edildi kernel-hack-drill
Çekirdek sömürüsü ilkellerini kontrollü bir şekilde denemek için özel bir test ortamı.
Bu hikayeyi ilginç bul! Daha fazla anında güncellemeler almak için bizi Google News, LinkedIn ve X’te takip edin.