Selam, bugün linux tarafında baya derin bi konuya dalalım. Use-after-free (UAF) zafiyetleri kernel seviyesinde hâlâ en tehlikeli şeylerden biri. Bazen (baxen) race condition'larla birleşince direkt root'a giden yol açabiliyor. Normal kullanıcı modunda bi struct'ı free'leyip sonra aynı pointer'ı kullanırsan crash alırsın ama kernelde iş değişiyor, slab allocator ve kmalloc detayları devreye giriyor.
Temelde şöyle çalışıyor: Bir yapı (mesela struct cred) allocate ediliyor, bir thread onu kullanıyo, diğer thread ise onu free'liyor. Eğer timing tam tutturulursa free'lenen alan başka bir yapı için yeniden allocate ediliyor ve eski pointer üzerinden yazma/oku yapabiliyorsun. Bu sayede cred struct'ını overwrite edip uid/gid değerlerini 0 yapabiliyorsun.
Pratikte çoğu exploit, setxattr + userfaultfd kombinasyonuyla race'i stabilize ediyor. Kernel 5.10-5.15 arası birçok distroda benzer pattern'lar hâlâ exploit edilebiliyor.
Bu tarz açıklar genelde kernelde SLUB allocator'ın freelist pointer'larını bozarak da sömürülüyo. Blue team tarafı için en etkili savunma, kernel'i mümkün olduğunca güncel tutmak ve grsecurity/PaX patch'lerini uygulamak. Senin sisteminde de /proc/sys/kernel/unprivileged_userns_clone gibi ayarları kapatırsan saldırı yüzeyini baya daraltırsın.
İstersen bu konuyu daha da derinleştirip belirli bir CVE'nin (mesela CVE-2022-2588 tarzı) exploit akışını da anlatayım.
Temelde şöyle çalışıyor: Bir yapı (mesela struct cred) allocate ediliyor, bir thread onu kullanıyo, diğer thread ise onu free'liyor. Eğer timing tam tutturulursa free'lenen alan başka bir yapı için yeniden allocate ediliyor ve eski pointer üzerinden yazma/oku yapabiliyorsun. Bu sayede cred struct'ını overwrite edip uid/gid değerlerini 0 yapabiliyorsun.
Pratikte çoğu exploit, setxattr + userfaultfd kombinasyonuyla race'i stabilize ediyor. Kernel 5.10-5.15 arası birçok distroda benzer pattern'lar hâlâ exploit edilebiliyor.
Hidden content - for more
Konuyu Görebilmeniz için "Beğenmeniz ve Yorum yapmaniz" Gerekir.
İstersen bu konuyu daha da derinleştirip belirli bir CVE'nin (mesela CVE-2022-2588 tarzı) exploit akışını da anlatayım.
Bu içeriği görmek için giriş yapın.