CVE-2020-36193 · Bilgilendirme

PEAR Archive_Tar Improper Link Resolution Vulnerability

CVE-2020-36193, PEAR Archive_Tar'daki zafiyet, sembolik link kontrol eksikliği ile klasörlere yazma işlemleri yapıyor.

Üretici
PEAR
Ürün
Archive_Tar
Seviye
yüksek
Yayın Tarihi
03 Nisan 2026
Okuma
8 dk okuma

CVE-2020-36193: PEAR Archive_Tar Improper Link Resolution Vulnerability

Zorluk Seviyesi: Orta | Kaynak: CISA KEV

Zafiyet Analizi ve Giriş

CVE-2020-36193 zafiyeti, PEAR Archive_Tar kütüphanesinde bulunan bir güvenlik açığıdır. PEAR, PHP geliştirme topluluğu tarafından oluşturulan ve özellikle PHP bileşenlerini yönetmek için kullanılan bir çerçeve ve dağıtım sistemidir. Bu zafiyet, sistemdeki dosya ve dizinlere karşı yürütülebilecek yazma işlemleri sırasında meydana gelen yetersiz sembolik link (symbolik bağlantı) kontrolünden kaynaklanmaktadır. Zafiyetin varlığı, uygulama geliştirenlerin ve sistem yöneticilerinin büyük bir dikkat göstermesi gereken bir alan oluşturur.

Zafiyetin temel sebebi, PEAR Archive_Tar kütüphanesinin Tar.php dosyasında yer alan ve dizin traversali (directory traversal) saldırılarına karşı koruma sağlamadaki eksikliktir. Dizin traversali saldırısı, kötü niyetli bir kullanıcının uygulama izinlerini aşarak sistemin hassas dosyalarına erişim sağlamasıyla sonuçlanabilir. Bu durumda, kötü amaçlı bir kişi, sembolik linkler aracılığıyla dosya sisteminde istenmeyen yazma işlemleri gerçekleştirebilir.

Gerçek dünya senaryolarında, örneğin bir içerik yönetim sistemi (CMS) olan Drupal'da, bu tür bir zafiyetten etkilenecek olan kullanıcılar, saldırganların sistemlerini tehlikeye atmasına neden olabilir. Drupal, kullanıcılarına çeşitli modüller ve eklentiler sunar ve bu tür eklentilerin bazıları PEAR Archive_Tar kütüphanesini kullanıyor olabilir. Dolayısıyla, potansiyel olarak bu zafiyetten etkilenen sistemler, hem devlet kurumlarını hem de özel sektörü kapsayan geniş bir yelpazede yer alır.

Özellikle, sağlık sektörü gibi regüle edilmiş alanlarda, hasta verilerini barındıran sistemler ve ayrıca finansal hizmetler alanında sıkça kullanılan uygulamalar, CVE-2020-36193 zafiyetine karşı son derece savunmasız hale gelebilir. Saldırganlar, hedef sistemdeki erişim haklarını artırarak tüm veritabanlarına ulaşılabilir hale gelebilir ve sonuç olarak ciddi veri ihlallerine yol açabilir. Örneğin, bir sağlık uygulamasındaki hasta kayıtlarına erişim sağlamak, bireylerin mahremiyetini ihlal ederken, aynı zamanda hukuki sorunlar da yaratabilir.

Zafiyetin etkisini azaltmak amacıyla geliştiricilerin, PEAR Archive_Tar kütüphanesinin en son sürümünü kullanmaları ve mevcut güncellemeleri takip etmeleri gerekmektedir. Ayrıca, sistem yöneticilerinin sunucu yapılandırmalarını gözden geçirmesi, gerekli güvenlik önlemlerini alması ve bu tür zafiyetleri ortaya çıkaran sembolik linklerin kullanımını sınırlamaları önerilir.

Sonuç olarak, CVE-2020-36193 zafiyeti, PEAR Archive_Tar kütüphanesindeki ciddi bir güvenlik açığıdır ve yetkisiz erişim (unauthorized access) ile sonuçlanabilecek potansiyel tehditler barındırmaktadır. Yazılım geliştiricilerinin ve sistem yöneticilerinin proaktif bir yaklaşım benimsemesi, bu tür zafiyetleri minimize etmek ve sistem güvenliğini sağlamak adına hayati öneme sahiptir.

Teknik Sömürü (Exploitation) ve PoC

PEAR Archive_Tar kütüphanesindeki CVE-2020-36193 zafiyeti, sistem yöneticileri ve uygulama geliştiricileri tarafından hayati öneme sahip bir güvenlik açığıdır. Bu zafiyet, dosya yazma işlemlerinin yanı sıra, sembolik bağlantıların yetersiz kontrolü nedeniyle dizin traversali (directory traversal) saldırılarına olanak tanımaktadır. Özellikle, bu kütüphanenin Drupal gibi yaygın üçüncü parti ürünlerde kullanılması, bu zafiyetin hedeflediği sistemlerde ciddi tehditler oluşturmasına neden olmaktadır.

Zafiyetin teknik açıdan sömürü edilmesi için öncelikle, bir hedef sistemde PEAR Archive_Tar kütüphanesinin kurulmuş olduğundan emin olmalıyız. Daha sonra, bu kütüphaneyi kullanarak dosya yazım işlemlerinin gerçekleştirilmesini sağlayacak bir ortam oluşturmalıyız. Bunun için kullanabileceğimiz temel bir adım dizisi bulunmaktadır.

  1. Sistem Bilgisi Toplama: Hedef sistemdeki PEAR Archive_Tar versiyonunu öğrenmek ve zafiyetin mevcut olup olmadığını doğrulamak için sistemin hangi PHP sürümünü kullandığını ve PEAR’in hangi versiyonunun yüklü olduğunu kontrol edin. Bunun için aşağıdaki komutu kullanabilirsiniz:
   pear version
  1. Sembolik Bağlantı Oluşturma: Zafiyetten yararlanmak için, hedef sistemde yazarak erişim sahibi olduğunuz bir dosya veya dizine sembolik bir bağlantı oluşturarak bu bağlantıyı kullanmalısınız. Örnek bir komut:
   ln -s /etc/passwd /tmp/link_to_passwd
  1. Güvenlik Açığından Yararlanma: Archive_Tar kütüphanesindeki zafiyeti tetiklemek için, bu sembolik bağlantıyı kullanılarak dosya yazma işlemi yapmanın yollarını araştırmalısınız. Aşağıdaki PHP kod parçası, yazarak erişim sağlayabileceğiniz bir dosya yolu belirleyerek, dizin traversali sömürü gerçekleştirecek şekilde tasarlanmış bir örnek sunmaktadır.
   <?php
   require_once 'Archive/Tar.php';

   $tar = new Archive_Tar('archive.tar');

   // Hedef dosyanın yolunu belirleyin (dizin traversali)
   $filepath = '/tmp/link_to_passwd';

   // Sembolik bağlantı üzerinden yazma işlemi
   $tar->addString($filepath, 'Yazı içeriği buraya gelecek.');
   ?>
  1. HTTP İstek Gönderimi: Bu aşamada, bir web uygulaması üzerinden toplu olarak HTTP isteği göndermeye ihtiyacınız olabilir. Aşağıda, PHP üzerinden yazılmış bir örnek HTTP isteği bulunmaktadır:
   $url = 'http://hedefsite.com/upload';
   $data = array('file' => '@/path/to/your/file.tar');

   $options = array(
       'http' => array(
           'header'  => "Content-Type: multipart/form-data\r\n",
           'method'  => 'POST',
           'content' => http_build_query($data),
       ),
   );

   $context  = stream_context_create($options);
   $result = file_get_contents($url, false, $context);
  1. Sonuçların Analizi: Eğer başarıyla dosya yazdıysanız, belirtilen dosya konumunda hedef sistemin /etc/passwd dosyasına erişebilirsiniz. Bu aşamada, elde edilen verileri analiz ederek, daha fazla bilgi (hash, kimlik bilgileri vb.) toplayabilirsiniz.

Bu zafiyetin sömürü edilmesi aşamasında dikkat edilmesi gereken en önemli noktaların başında, etik koşullara ve yasal sınırlara uygun hareket etmek gelmektedir. White Hat Hacker (Beyaz Şapkalı Hacker) olarak, güvenlik açıklarını tespit etmek ve bu açıkları bildirerek sistem yöneticilerine yardımcı olmak için çalışmalar yapılmalıdır. Sömürü yöntemleri yalnızca savunma mekanizmalarının güçlendirilmesi amacıyla gösterilmelidir.

Forensics (Adli Bilişim) ve Log Analizi

PEAR Archive_Tar'da bulunan CVE-2020-36193 zafiyeti, saldırganların dosya yazma işlemlerine izin veren bir güvenlik açığı sunmaktadır. Bu zafiyet, yetersiz sembolik link kontrolü nedeniyle meydana gelmekte ve kötü niyetli kullanıcılar tarafından "directory traversal" (dizin geçişi) ile sistemin belirli bölgelerine erişim sağlayabilmektedir. Bu sorun, PEAR (PHP Extension and Application Repository) gibi üçüncü parti uygulamalarda kullanıldığı için, birçok farklı sistemde potansiyel bir tehdit oluşturmaktadır.

Güvenlik açığının istismar edilmesi durumunda, saldırganın belirli bir dosya veya dizine yazı yapması mümkün hale gelir. Örneğin, kötü niyetli bir kullanıcı, sistemde yüklü olan PEAR Archive_Tar kütüphanesi aracılığıyla bir komut dosyası yükleyebilir ve bu komut dosyası üzerinden uzaktan kod çalıştırma (RCE - Remote Code Execution) yeteneğine sahip olabilir. Bu tür bir istismar, özellikle sunucu üzerinde kritik yetkilere sahip olduğu varsayılan bir uygulama ortamında oldukça tehlikeli sonuçlar doğurabilir.

Böyle bir saldırının tespit edilmesi, "Forensics" (Adli Bilişim) ve log analizi açısından son derece önemlidir. Bir siber güvenlik uzmanı, CI/CD (Continuous Integration/Continuous Deployment) süreçlerinde veya sistem günlüklerinde (logs) aşağıdaki imzalar ve bulgular üzerinde durmalıdır:

  1. Access Logs (Erişim Günlükleri): Kötü niyetli dosya yüklemeleri genellikle atypical request patterns (alışılmadık istek desenleri) oluşturur. Özellikle, dosya yükleme isteği içeren isteklerin, beklenen dizinler dışında yapılması dikkat çekici olmalıdır. Örnek bir HTTP isteği şu şekilde olabilir:
   POST /path/to/upload.php HTTP/1.1
   Host: vulnerable.site
   Content-Type: application/x-www-form-urlencoded
   Content-Length: 94

   filename=../../../../etc/passwd&submit=Upload
  1. Error Logs (Hata Günlükleri): Uygulama, dosya yazma işlemleri sırasında hata veriyor olabilir. Örneğin, bir dosya yükleme işlemi sırasında yetersiz izinler veya mevcut olmayan dizinler nedeniyle hata mesajları oluşabilir. Bu hata mesajları, şüpheli etkinliklerin izlerini taşıyabilir.

  2. Anormal Dosya Sistem Değişiklikleri: Sistem yöneticileri, kritik dizinlerin ve dosyaların değişikliklerini izleyebilir. "Inotify" veya benzeri araçlar kullanarak dosya sistemi değişikliklerini takip etmek, şüpheli aktivitelerin önceden tespit edilmesine yardımcı olur. Örneğin bir dosyanın, beklenmeyen bir Dosya Sistemi Yolu'na yazıldığını görmek, potansiyel bir saldırı girişimi olduğunu gösterebilir.

  3. Sis-Log veya Audit Log (Denetim Günlükleri): Hem sistem logları hem de uygulama logları, kullanıcı etkinliklerini ve dosya erişimlerini izlemek için kullanılmalıdır. Özellikle, yetkisiz dosya yönlendirmeleri ve kullanıcı izinleri ile ilgili hataların kayıtları incelenmelidir.

  4. API Erişim Günlükleri: Eğer uygulama API tabanlı bir mimariye sahipse, anormal API çağrıları ve bu çağrıların yanıt süreleri incelenmelidir. Özellikle, yetkilendirilmiş API istemcileri dışındaki kullanıcılar tarafından yapılan çağrılar dikkatle izlenmelidir.

Sonuç olarak, PEAR Archive_Tar'daki CVE-2020-36193 zafiyeti gibi potansiyel tehditleri tespit etmek için kapsamlı bir log analizi yapmak hayati öneme sahiptir. Siber güvenlik uzmanları, log verilerini düzenli olarak gözden geçirerek, şüpheli aktiviteleri zamanında tespit edebilir ve gerekiyorsa sistem korumasını artıracak önlemler alabilir. Bu tür zafiyetlerin erken tespiti, sistemin genel güvenliğini sağlamada kritik bir rol oynamaktadır.

Savunma ve Sıkılaştırma (Hardening)

PEAR Archive_Tar’da bulunan CVE-2020-36193 zafiyeti, bir yazılımın güvenli bir biçimde çalışmadığını gösteren önemli bir örnektir. Bu zafiyet, sembolik bağlantılar (symbolic links) üzerinde yetersiz kontrolün sonucunda dizin geçişine (directory traversal) izin veren bir durum ortaya çıkarır. Söz konusu durum, kullanıcıların kötü niyetli bir şekilde dosya sisteminde yetkisiz yazma işlemleri gerçekleştirmesine olanak tanır. Gerçek dünyada, bu tür zafiyetler kötü amaçlı bir saldırganın sistemde uzaktan kod yürütme (RCE - Remote Code Execution) gerçekleştirmesine çanak tutabilir.

Bu tür zafiyetlere karşı etkili bir savunma mekanizması oluşturmak için öncelikle web uygulamalarında sıkılaştırma (hardening) işlemlerinin yapılması gerekmektedir. Aşağıda, bu açıkların nasıl kapatılacağına ve güvenliğin nasıl artırılacağına yönelik öneriler bulabilirsiniz:

  1. Güncellemeler ve Yamanın Uygulanması: PEAR Archive_Tar kütüphanesinin güncel sürümü kullanılmalıdır. Yazılım geliştiricileri, güvenlik açıklarını düzeltmek için yamalar ve güncellemeler yayınlar. Yazılımı düzenli olarak kontrol edip, güncel tutmak kritik öneme sahiptir.

  2. Sembolik Bağlantı Kontrolleri: Uygulama üzerinde sembolik bağlantıların nasıl kullanılacağını ve hangi klasörlere erişim sağlandığını iyi tanımlamak gerekmektedir. Örneğin, is_link fonksiyonu kullanılabilir:

   if (is_link($filePath)) {
       // Geçersiz bir sembolik bağlantı tespit edildi
       die("Erişim reddedildi.");
   }
  1. Bütün Dosya ve Dizin İzinlerini Gözden Geçirin: Dosya ve klasör izinlerinin doğru ayarlanması, yetkisiz erişimi önlemenin bir başka yoludur. Örneğin, sadece gerekli kullanıcıların dosyalara erişim izni olması sağlanmelidir:
   chmod 750 /path/to/protected/dir
  1. WAF Kullanımı (Web Application Firewall): Uygulama güvenliğini artırmak için bir WAF kullanmak çok önemlidir. WAF, kötü amaçlı girişimleri otomatik olarak engelleyebilir ve gelen trafik üzerinde ek kontroller gerçekleştirebilir. WAF kurallarını özelleştirerek, belirli dizinlere erişim kısıtlamaları getirilebilir.

  2. Güvenlik Kontrollerinin Uygulanması: Geliştirme aşamasında, OWASP Top Ten gibi güvenlik kontrol listelerinden yararlanarak uygulamanın zayıf noktalarının tespit edilmesi gereklidir. Böylece, uygulamanın güvenliği artırılır ve CVE-2020-36193 gibi zafiyetlere karşı bir önlem alınabilir.

  3. Gelişmiş Loglama ve İzleme: Sunucu loglarının sürekli olarak izlenmesi, herhangi bir anormal erişim veya potansiyel saldırıların erken tespit edilmesine yardımcı olur. Belirli IP adreslerinden gelen hatalı erişim talepleri, ihlallerin önceden tespit edilmesi için kritik öneme sahiptir.

  4. Eğitim ve Farkındalık: Yazılım geliştiren ekiplerin ve sistem yöneticilerinin, güvenlik açıkları ve bunların kapatılması hakkında bilgi sahibi olmaları gerekir. Bu tür açıkların farkında olmak ve bu alanlarda eğitim almak, savunma mekanizmalarını güçlendirecektir.

Sonuç olarak, PEAR Archive_Tar’daki CVE-2020-36193 açığı, her ne kadar belirli bir kütüphaneye yönelik olsa da, benzer zafiyetlerin başka sistemlerde de ortaya çıkabileceğini unutmamak gerekir. Uygulamanızın güvenliğini artırmak ve bu tür zafiyetleri etkisiz hale getirmek için yukarıda belirtilen sıkılaştırma (hardening) yöntemlerinin uygulanması kritik öneme sahiptir. Kapsayıcı bir güvenlik stratejisi, modern uygulamaların güvenliğinde önemli bir yer tutmaktadır.