Linux Çekirdek Kullanımdan Arık Güvenlik Açığı’ndan yararlanmak için yeni teknik ortaya çıktı


Linux Çekirdek Kullanımdan Ardından Güvenlik Açığı Kullanımı

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.

Google Haberleri

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:

  1. Mesaj kuyruğu neredeyse kapasiteye doldurulur ve sadece birkaç bayt boş alan bırakır.
  2. Daha sonra istismar hedefi göndermeye çalışır msg_msg nesneler. Kuyruk dolu olduğu için, çekirdek nesneleri tahsis eder, ancak msgsnd() Sistem çağrısı, boşluk beklemeye zorlamak.
  3. Sistem çağrısı engellenirken, UAF tetiklenir ve bekleyen alanları bozar msg_msg nesne.
  4. 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.



Source link