
Araştırmacılar, Linux çekirdeğinde saldırganların uzaktan kod yürütmesine izin verebilecek kritik bir kusur ortaya çıkardılar.
Yedi yıldır aktif olmayan güvenlik açığı, Linux çekirdeğinin TCP alt sistemi üzerinde rutin araştırma yapılırken ortaya çıkarıldı.
Şimdi CVE-2024-36904 olarak tanımlanan bu hata, yaygın olarak kullanılan açık kaynaklı yazılımlarda kalıcı riskleri vurgulamaktadır.
Güvenlik açığının keşfi
Alel Güvenlik Araştırmacıları, Linux çekirdek kaynak kodunun denetimi sırasında ve Syzkaller Fuzzer gibi araçları izleme yoluyla güvenlik açığını belirledi.
TCP alt sisteminde bulundu ve tcp_twsk_unique () ve inet_twsk_hashdance () arasındaki yarış koşulunun neden olduğu bir kullanımdan sonraki kullanım hatasından kaynaklanıyor.
CVE-2024-36904 olarak izlenen bu sorun, bir zaman beklemesi TCP soketinin referans sayacı bir karma tablosuna yerleştirildikten ve kilidini serbest bıraktıktan sonra başlatıldığında ortaya çıkar.
Bu başlatmadan önce bir arama yapılırsa, sıfırlanmış bir referans sayacıyla sonuçlanır ve bu da bellek yanlış yönetimine yol açar.
Güvenlik açığı, çekirdeğin TCP alt sistemindeki referans sayaçlarının yanlış kullanılması nedeniyle meydana gelir. Spesifik olarak, referans sayacı tamamen başlatılmadan önce bir karma tablosuna bir zaman bekleme soketi nesnesi eklenir.
__İnet_check_established () aracılığıyla eşzamanlı aramalar nesneyi bul ve sock_hold () tetikleyen twsk_unique () çağırın.
Sock_hold () initsiz bir referans sayacı bulursa, onu 0xc0000000’e yerleştirir. Ancak, INET_TWSK_HASHDANCE () daha sonra bu değerin üzerine yazarak 3 ile bir dengesizliğe neden olur.
Bu, nesnenin çok erken yayınlanmasına neden olur ve kullanılmayan bir durum yaratır. Bu tür güvenlik açıkları, çekirdek içinde keyfi kod uygulamasına yol açabilecekleri ve potansiyel olarak tüm sistemleri ödün verebilecekleri için özellikle tehlikelidir.
Kavram kanıtı
Sömürülebilirliği doğrulamak için, alel güvenlik araştırmacıları, yürütme akışındaki kilit noktalarda gecikmeler getirmek için çekirdeği değiştirdi.
Bu, sorunu güvenilir bir şekilde yeniden üretmelerine ve çekirdek adres dezenfektanı (Kasan) kullanarak ayrıntılı raporlar oluşturmalarını sağladı. Çekirdek operasyonlarında (mdelay ()) kasıtlı gecikmeler getirerek, araştırmacılar kontrollü ortamlarda hatayı güvenilir bir şekilde yeniden ürettiler.
Ayrıca, Kasan’ın önbellekler üzerindeki sınırlamalarını slab_typesafe_by_rcu bayrağı ile atlamak için çekirdek yapılandırmalarını değiştirdiler.
Bu güvenlik açığının sömürülebilirliği, hassas zamanlama ve spesifik yürütme akışlarına olan bağımlılığı nedeniyle karmaşık olmaya devam etmektedir. Ancak, yeterli kaynak ve uzmanlık göz önüne alındığında, saldırganlar hedeflenen saldırılar için silahlandırabilir.
Yukarı akış yamalı olmasına rağmen, bu kusur, yukarı akış düzeltmelerinin entegre edilmesindeki gecikmeler nedeniyle yaygın olarak kullanılan bazı Linux dağıtımlarında devam eder.
Örneğin, araştırmacılar Red Hat Enterprise Linux türevlerindeki varlığını daha eski çekirdeklerdeki varlığını doğruladılar.
Bu daha geniş bir sorunu vurgulamaktadır: birçok popüler dağıtım, yukarı akış yamalarının gerisinde kalır ve düzeltmeler mevcut olduktan sonra bile kullanıcıları savunmasız bırakır.
Kullanıcılar, Mayıs 2024’ten sonra yamalı çekirdek sürümlerini içerecek şekilde sistemlerini güncellemelidir. Ayrıca, geliştiriciler benzer sorunların erken tespiti için Syzkaller ve Kasan gibi araçları benimsemeye teşvik edilir.
Are you from SOC/DFIR Team? - Join 500,000+ Researchers to Analyze Cyber Threats with ANY.RUN Sandbox - Try for Free