← Sözlük
Geliştirme

Use-After-Free nedir?

UAF

Bellekteki bir alan serbest bırakıldıktan sonra programın o alana erişmeye çalışmasıyla ortaya çıkan bir güvenlik açığıdır.

Tanım

Use-after-free, bellek yönetimi sırasında bir veri yapısı silindikten veya serbest bırakıldıktan sonra işaretçinin hâlâ o adresi göstermeye devam etmesiyle oluşur. Programın bu geçersiz adrese okuma veya yazma yapması, beklenmeyen çöküşlere veya kötü niyetli kod yürütülmesine yol açar. Özellikle Rust gibi bellek güvenliğini derleme zamanında denetleyen diller bu tür hataların önüne geçmek için tasarlanmıştır.

Bir otel odasının anahtarını teslim ettikten sonra odaya tekrar girip orada kalan yeni müşterinin eşyalarını değiştirmeye çalışmaya benzer.

Nasıl çalışır?

Programcı veya bellek yöneticisi bir bellek bloğunu serbest bırakır ancak bu bloğa işaret eden değişkeni sıfırlamaz. Program ilerleyen adımlarda bu pasif işaretçiyi kullanarak işlem yapmaya kalkıştığında bellek hatası meydana gelir.

Nerede kullanılır?

C ve C++ gibi manuel bellek yönetimi gerektiren sistem programlama dillerinde, taranan güvenlik açıklarında ve zafiyet analizlerinde sıkça görülür.

Sık karıştırılanlar

Memory leak zafiyeti kullanılmayan belleğin serbest bırakılmaması durumuyken, use-after-free serbest bırakılan belleğin hatalı biçimde tekrar kullanılmasıdır.

Sorular ve yanıtlar

Bu güvenlik açığı nasıl engellenir?

Bellek serbest bırakıldıktan hemen sonra işaretçileri sıfırlayarak veya bellek güvenliği sağlayan diller tercih edilerek engellenir.

Bu açık uzaktan kod çalıştırmaya imkân tanır mı?

Evet, saldırganlar serbest bırakılan bellek alanına kendi verilerini yazarak akışı kontrol edebilir.

İlgili terimler

Bu açıklama TreScout için yapay zekâ ile sade dille hazırlandı · yanlış ya da eksik gördüğünüz bir şey olursa hello@trescout.com. TreScout her gün GitHub, Hacker News ve Hugging Face'te öne çıkanları Türkçe özetler.