Squid Proxy’de 29 Yıllık Hata: Kullanıcı Verileri Sızıyor mu?

Squid proxy yazılımında ortaya çıkan ve ‘Squidbleed’ olarak adlandırılan kritik bir güvenlik açığı, aynı proxy’yi kullanan farklı kullanıcıların açık metin halindeki HTTP isteklerini sızdırabiliyor. Bu durum, kimlik bilgileri ve oturum belirteçleri gibi hassas bilgilerin yetkisiz kişilerce ele geçirilmesine yol açabilir. 1997 yılına dayanan bir FTP ayrıştırma değişikliğine kadar uzanan bu hata, Squid’in varsayılan yapılandırmasında hala aktif durumda.
Squidbleed: Güvenlik Açığının Detayları
Calif.io’daki araştırmacılar tarafından Haziran ayında ortaya çıkarılan ve adını hafızayı benzer şekilde sızdıran Heartbleed’dan alan Squidbleed (CVE-2026-47729), özellikle güvenilir olarak kabul edilen istemciler tarafından tetiklenebiliyor. Bu, internet üzerindeki rastgele bir IP adresinden değil, proxy’yi kullanma izni zaten verilmiş olan bir kullanıcının saldırıyı gerçekleştirebileceği anlamına geliyor. Okul, ofis veya halka açık Wi-Fi ağları gibi paylaşımlı ağ ortamlarında bu durum, saldırganın aynı proxy’yi kullanan başka bir kullanıcı olmasıyla sonuçlanıyor. Bu güvenlik açığı, yalnızca Squid’in okuyabildiği trafik verilerini etkiliyor. Normal HTTPS trafiği şeffaf bir CONNECT tüneli üzerinden aktığı için Squid bu trafiğin içeriğini göremiyor. Ancak açık metin HTTP trafiği ve Squid’in trafiği deşifre edip incelediği TLS sonlandırma kurulumları bu açıktan etkileniyor. Saldırganın ayrıca, proxy’nin FTP sunucusuna ve kontrol ettiği 21 numaralı porta ulaşabilmesi gerekiyor; FTP ve bu port varsayılan olarak açık geliyor.
Peki, bu sızıntı tam olarak nasıl gerçekleşiyor? Hata, Squid’in FTP dizin listeleme ayrıştırıcısında yatıyor. Eski NetWare sunucularının listelemeleri fazladan boşluklarla doldurma eğilimine ayak uydurmak için kod, boşlukları bir döngüyle atlıyor: ‘while (strchr(w_space, *copyFrom)) ++copyFrom;’. Eğer saldırganın FTP sunucusu, dosya adı olmadan yalnızca zaman damgasının hemen ardından biten bir liste satırı gönderirse, ‘copyFrom’ değişkeni dizinin sonundaki null sonlandırıcıya (null terminator) denk geliyor. ‘strchr’ fonksiyonu, bu sonlandırıcı NUL karakterini aradığı dizenin bir parçası olarak kabul ediyor ve NULL yerine bir işaretçi döndürüyor. Bu da döngünün asla durmamasına neden oluyor. Döngü, bellek tamponunun dışına taşarak devam ediyor ve ‘xstrdup’ fonksiyonu, bu okun dışındaki verileri bir dosya adı olarak saldırgana kopyalıyor.
Sızdırılan baytlar, işin asıl önemli kısmını oluşturuyor. Squid, serbest bıraktığı bellek tamponlarını sıfırlamadan yeniden kullandığı için, yakın zamanda bir kurbanın HTTP isteğini tutan 4KB’lık bir tampon hala bu isteğin büyük bir bölümünü barındırıyor olabilir. Kısa bir FTP satırı, yalnızca ilk birkaç baytı geçersiz kılıyor; aşırı okuma (over-read) ise geri kalan verileri döndürüyor. Calif.io’nun gösterdiği örnekte, aynı proxy’yi paylaşan bir kurbandan alınan bir Yetkilendirme (Authorization) başlığı vardı; bu, o kullanıcı gibi davranmak için fazlasıyla yeterliydi.
Bu tür güvenlik açıkları, özellikle kurumsal ağlarda ve halka açık Wi-Fi noktalarında ciddi riskler barındırıyor. Kullanıcıların farkında olmadan hassas bilgilerini paylaşma ihtimali, siber güvenlik stratejilerinin ne denli dinamik olması gerektiğini bir kez daha ortaya koyuyor.
Hatanın Kökleri ve Yaygınlığı
Squidbleed’in kökeni, 1997 yılına ait bir FTP ayrıştırma koduna dayanıyor. Bu durum, yazılım güvenliğinde ‘yaşayan’ eski kodların ne denli tehlikeli olabileceğinin bir göstergesi. Bu hata, özellikle ‘güvenilir istemci’ senaryosunda kendini gösteriyor. Yani saldırganın rastgele bir internet kullanıcısı değil, ağ içinde proxy’ye erişim izni olan bir kişi olması gerekiyor. Bu, Squid’in genellikle kullanıldığı okul, iş yeri ve halka açık Wi-Fi gibi ortamlarda oldukça olası bir senaryo. Squid’in kendisi bu durumu bir ‘güvenilir istemci saldırısı’ olarak tanımlıyor. Normalde HTTPS trafiği şifreli olduğu için Squid tarafından görülemiyor, ancak açık metin HTTP trafiği veya Squid’in trafiği analiz etmek üzere yapılandırıldığı durumlar bu açıktan etkileniyor. Saldırganın, proxy aracılığıyla bir FTP sunucusuna bağlanması ve bu sunucunun 21 numaralı portu üzerinden iletişim kurması da gerekiyor. FTP protokolü ve 21 numaralı port, varsayılan ayarlarda genellikle açık bırakıldığı için bu koşullar kolayca sağlanabiliyor.
Araştırmacılar tarafından sunulan kanıt-niteliğindeki (proof-of-concept) kodlar kamuya açık hale getirildi. Ancak şu ana kadar bu açığın kötü niyetli olarak kullanıldığına dair herhangi bir rapor bulunmuyor. Bu durum, güvenlik topluluğunun hızlı tepki vermesi ve yamaların geliştirilme sürecine girmesiyle açıklanabilir. Peki, bu kadar eski bir kod parçasının günümüzde hala nasıl bir tehdit oluşturabildiği sorusu akıllara geliyor. Cevap, yazılım evriminin karmaşıklığında yatıyor; eski fonksiyonellikler, güvenlik yamalarıyla güncellenmediğinde veya yeniden gözden geçirilmediğinde, beklenmedik zaaflar yaratabiliyor. Türk bilişim sektörü de bu tür küresel güvenlik tehditlerine karşı daima uyanık olmalı, kendi sunucu altyapılarını düzenli olarak denetlemeli ve güncellemeleri ihmal etmemelidir.
Yamalar ve Çözüm Yolları
Bu güvenlik açığını kapatmak için geliştirilen yamalar ve önerilen çözüm yolları mevcut. Eğer bir güncelleme yapılıyorsa, yalnızca sürüm numarasını kontrol etmekle yetinmeyip, düzeltmenin gerçekten uygulandığını doğrulamak büyük önem taşıyor. Düzeltmenin FtpGateway.cc dosyasında yer aldığını teyit etmek veya dağıtımınızın (distribution) sağladığı geriye dönük yamaları (backport) kontrol etmek gerekiyor, zira dağıtımlar kendi derledikleri Squid sürümlerini sunabiliyorlar. Örneğin, Debian paketleri Squid 5.7’yi kullanıyor. Kamuoyundaki bilgi akışı da zaman zaman tutarsızlıklar gösterebiliyor; bakımcı Amos Jeffries başlangıçta Squid 7.6’nın düzeltmeyi içerdiğini belirtmiş, ardından bunu 7.7 olarak düzeltmişti. Ancak 22 Haziran’da Debian’dan Salvatore Bonaccorso, referans gösterilen commit’in aslında 7.6 sürümünde zaten bulunduğunu kaydetti. Düzeltme oldukça küçük bir değişiklik içeriyor: savunmasız ‘strchr’ çağrılarından önce bir null sonlandırıcı kontrolü eklenmesi. Bu değişiklik Nisan ayında geliştirme dalına ve Mayıs ayında v7 sürümüne birleştirildi.
Öte yandan, Squid 7.6 sürümünün ayrı olarak CVE-2026-50012’yi de düzelttiği belirtiliyor; bu, ilgisiz bir cache_digest yığın taşması (heap overflow) güvenlik açığı. Ancak araştırmacıların genel olarak tavsiye ettiği daha temiz çözüm, FTP’yi tamamen devre dışı bırakmak. Chromium tarayıcısı yıllar önce FTP desteğini kaldırmıştı ve günümüzde çoğu ağda FTP trafiği neredeyse hiç bulunmuyor. Bu nedenle, FTP’yi devre dışı bırakmak, hangi Squid sürümünü kullanırsanız kullanın bu saldırı yüzeyini ücretsiz olarak ortadan kaldıracaktır. Bu risk gerçek olsa da, belirli sınırlara sahip görünüyor.
Peki Squidbleed ile Ne Yapmalısınız?
Öncelikle, sistem yöneticilerinin ve ilgili BT personelinin Squid sunucularını derhal kontrol etmeleri gerekiyor. Güvenlik açığının hangi sürümlerde bulunduğunu ve yamaların ne zaman uygulandığını detaylı bir şekilde incelemelisiniz. Eğer mümkünse, en güncel ve yamalanmış Squid sürümüne geçiş yapılması şiddetle tavsiye edilir. Ancak sürüm numarasının tek başına yeterli olmadığını unutmamak önemlidir; yapılan düzeltmelerin gerçekten uygulandığından emin olmak için yapılandırma dosyalarını ve sürüm notlarını dikkatlice inceleyin. Türkiye’deki birçok kurumun hala eski veya yamalanmamış yazılımlar kullanma eğilimi göz önüne alındığında, bu tür güncellemeler hayati önem taşıyor.
En güvenli yaklaşım olarak, eğer ağınızda FTP protokolü yoğun olarak kullanılmıyorsa veya hiç kullanılmıyorsa, FTP desteğini Squid üzerinden tamamen devre dışı bırakmak en etkili çözüm olacaktır. Bu, Saldırı yüzeyini minimuma indirir ve Squidbleed gibi FTP ile ilgili zafiyetlerden korunmanızı sağlar. Çoğu modern web uygulaması ve hizmeti artık FTP yerine daha güvenli protokoller kullanıyor. Bu nedenle, FTP’yi kapatmak genellikle işlevsellik kaybına yol açmazken, güvenlik duruşunuzu önemli ölçüde güçlendirecektir. Proof-of-concept kodların yayınlanmış olması, saldırganların bu zafiyeti test etmeye başlayabileceği anlamına geliyor. Bu nedenle proaktif davranmak, potansiyel veri sızıntılarını ve kimlik bilgilerinin kötüye kullanılmasını engellemek için kritik öneme sahip.
İlgili Makaleler
- ›Windows 11'de Otomatik İmzalı SSL Sertifikaları Oluşturma Rehberi
- ›Sahte 7-Zip Yükleyicileri, Cihazları Konut Proxy Ağına Katıyor
- ›Gizlenen Kimlik Avı Dalgaları Geleneksel E-posta Kalkanlarını Kırıyor
- ›Kimlik Doğrulama Adımı: Siber Saldırıların Yeni Cephesi
- ›Tenda Router Yazılımlarında Gizli Yönetici Arka Kapısı Riski