Path-Sanitizer NPM Paketinde Kritik Güvenlik Açığı
CVE-2024-56198'e Genel Bakış
CVE-2024-56198 , dosya yollarını temizlemek ve yol geçiş saldırılarını önlemek için tasarlanmış path-sanitizer npm paketinde bulunan kritik bir güvenlik açığıdır . Bu güvenlik açığı 3.1.0'dan önceki sürümleri etkileyerek saldırganların, amaçlanan kapsamın dışındaki dosyalara ve dizinlere yetkisiz erişime yol açabilen belirli bir yük (" ) kullanarak mevcut filtreleri atlamasına olanak tanır . Ortak Güvenlik Açığı Puanlama Sistemi (CVSS), etkilenen sistemlerin gizliliği, bütünlüğü ve kullanılabilirliği üzerinde potansiyel etkileri olan yüksek bir önem seviyesini gösteren 9,3 puan atadı (" ..=\\" ")
Yol Geçiş Saldırılarını Anlamak
Yol geçiş saldırıları , dizin geçiş saldırıları olarak da bilinir, dosya yollarını uygunsuz şekilde işleyen web uygulamalarındaki güvenlik açıklarından yararlanır. Saldırganlar, web kök dizini dışında depolanan dosyalara erişmek için dosya yolu değişkenlerini manipüle eder. Bu, yapılandırma dosyaları, uygulama kaynak kodu veya diğer kritik sistem dosyaları dahil olmak üzere hassas dosyalara yetkisiz erişime yol açabilir .Yol Geçişi Nasıl Çalışır?
Bir saldırgan genellikle dizin yapısında yukarı doğru gezinmek için (nokta-nokta-eğik çizgi) gibi diziler kullanır . Örneğin, savunmasız bir uygulama uygun doğrulama olmadan kullanıcı girdisine dayalı bir dosya yolu oluşturabilir:../
metinGET /file?name=../../etc/passwd
/etc/passwd
CVE-2024-56198'in Teknik Ayrıntıları
Güvenlik Açığı Açıklaması
path-sanitizer'daki güvenlik açığı, belirli giriş desenlerini düzgün bir şekilde temizleyememesinden kaynaklanır. Özellikle, yükün kullanılması saldırganların 3.1.0'dan önceki sürümlerde uygulanan temizleme filtrelerini atlamasına olanak tanır . Bu, yol geçişine neden olabilir ve sunucudaki keyfi dosyalara erişime olanak tanır ..=\\
Sömürü Örneği
Dosya yüklemelerini veya indirmelerini yönetmek için path-sanitizer kullanan bir uygulamayı düşünün:javascriptconst pathSanitizer = require('path-sanitizer'); app.get('/download', (req, res) => { const sanitizedPath = pathSanitizer.sanitize(req.query.file); // Proceed with file access logic... });
metinGET /download?file=somefile.txt.=\\
Azaltma Stratejileri
CVE-2024-56198'i ele almak ve yol geçiş güvenlik açıklarını önlemek için çeşitli stratejiler kullanılmalıdır:- Hemen Güncelleyin : path-sanitizer paketini 3.1.0 veya sonraki bir sürüme yükseltin.
- Ek Doğrulama Uygulayın : Hemen güncelleme yapmak mümkün değilse, sunucu tarafı doğrulamasını ve dosya yollarının temizlenmesini artırın.
- En Az Ayrıcalık İlkesi : Başarılı saldırılardan kaynaklanabilecek potansiyel zararı en aza indirmek için kullanıcı izinlerini sınırlayın.
- İzleme ve Günlük Kaydı : Olası istismarları tespit etmek için dosya erişim girişimlerine yönelik günlük kaydı mekanizmalarını uygulayın.
- Web Uygulama Güvenlik Duvarı (WAF) : Uygulamanızı hedef alan kötü amaçlı istekleri filtrelemek için bir WAF dağıtmayı düşünün .