Microsoft’un NLWeb Kodundaki Açık, Kullanıcı Dosyalarına Erişim Sağladı
Microsoft’un Build 2025 etkinliğinde tanıttığı yeni proje NLWeb, güvenlik araştırmacılarının ortaya çıkardığı bir açık nedeniyle eleştirilerin hedefi oldu. Doğal dil ile web siteleri arasında etkileşim kurulmasını hedefleyen NLWeb, temelinde yapay zekâ tabanlı aracı sistemlerin çevrim içi hizmetlerle doğrudan iletişim kurmasını sağlayan bir yapı olarak tanıtıldı. Ancak projede yer alan bir kod parçası, saldırganlara kullanıcı dosyalarına izinsiz erişim imkânı sundu.
NLWeb’in Kaynak Kodunda Tehlikeli Bir Güvenlik Açığı Bulundu
Güvenlik araştırmacısı Aonan Guan, NLWeb’in GitHub deposunu incelerken static_file_handler.py adlı dosyada şüpheli bir yapı fark etti. Dosya, gelen istekler doğrultusunda sunucudan dosya sağlayan temel işlevleri barındırıyordu. Ancak içerdiği kod, önemli bir denetim eksikliği barındırıyordu.
Kodun ilk satırlarında yer alan os.path.normpath(path.lstrip('/')) komutu, kullanıcıdan gelen dosya yolunu normalize ederek standartlaştırıyordu. Fakat bu işlem, “../” gibi üst dizin geçişlerini temizlemiyor, yalnızca sözdizimini düzeltiyordu. Bu sayede saldırganlar, web kök dizininden yukarı çıkıp sistemin dosya yapısına erişim sağlayabiliyordu.
Guan, yerel bir sunucu üzerinde yaptığı testlerde basit bir curl komutuyla /etc/ dosyasının içeriğini görüntülemeyi başardı. Aynı yöntemle projenin kaynak kod klasöründeki .env dosyasını da almayı başardı. Bu dosyada API anahtarları gibi hassas bilgiler bulunabiliyor.

Açık, NLWeb uygulamasının kullanıcıdan gelen dosya isteklerini yeterince denetlemediğini ve dizin dışına çıkmayı engelleyecek kontrollerin eksik olduğunu ortaya koydu.

Açığın 28 Mayıs’ta bildirildiği, Microsoft’un aynı gün içinde raporu kabul ettiği ve iki gün sonra düzeltme sunduğu açıklandı. Güncellenen kod, üç katmanlı bir güvenlik mekanizması içeriyor. İlk olarak, gelen isteklerde .. ifadeleri engelleniyor. Ardından yalnızca belirlenen uzantılara sahip dosyalara izin veriliyor. Son olarak, dosya yolları tam olarak çözülüp yalnızca izin verilen dizinler içinde olup olmadığı denetleniyor.
Guan’a göre NLWeb örneği, doğal dil tabanlı yeni sistemlerin güvenlik açısından ne tür tehditler barındırabileceğini gösteriyor. Kullanıcıdan gelen ifadelerin yanlış şekilde yorumlanması, sistem üzerinde beklenmeyen dosya yolu veya komutlara dönüşebilir. Bu nedenle geliştiricilerin, bu tür altyapılarda daha yüksek güvenlik önlemleri uygulaması gerekiyor.
Microsoft’un NLWeb projesi, hâlâ gelişim aşamasında bulunuyor. Ancak açık kaynak kodlu yapılar, hızla benimsenmeden önce kapsamlı şekilde test edilmeli. Aksi hâlde sıradan bir kod satırı, sistem genelinde büyük güvenlik zaafiyetlerine yol açabilir.










