Gönderi

Path Traversal | Jenkins

Path Traversal | Jenkins

Yazılım: Jenkins

Versiyon: 2.314

Güvenlik Açığı: Path Traversal (Dizin Gezinme)

CVE: CVE-2021-21683

Ürün Tanımı

Jenkins, yazılım geliştirme süreçlerindeki derleme, test ve dağıtım işlemlerini otomatikleştirmeye yardımcı olan popüler bir açık kaynak otomasyon sunucusudur. Sürekli entegrasyon ve sürekli teslim süreçlerini kolaylaştıran web arayüzü ve güçlü eklenti sistemi ile çeşitli geliştirme iş akışlarına uyarlanabilir yapıdadır.

Güvenlik Açığı Genel Bakış

Jenkins’in 2.314 ve önceki sürümlerinde, ayrıca LTS 2.303.1 ve önceki sürümlerinde bir path traversal güvenlik açığı keşfettim. Bu açık özellikle Windows ortamlarını etkiliyor ve dosya tarayıcı bileşeninin belirli yolları göreceli yerine mutlak olarak yorumlamasına neden oluyor.

Keşif Süreci

Windows ortamında çalışan Jenkins’in güvenlik değerlendirmesini yaparken, dosya tarayıcı işlevselliğinde olağandışı bir davranış fark ettim. Web arayüzü üzerinden bir görevin çalışma alanını incelerken, belirli yol desenlerinin, altta yatan dosya sistemi işlemleri tarafından işlenmeden önce düzgün şekilde doğrulanmadığını tespit ettim.

Yol girdilerini manipüle ederek, Jenkins’in path traversal saldırılarına karşı savunmasız olduğunu ve amaçlanan dizin yapısı dışındaki dosyalara erişim sağlanabildiğini doğruladım.

Technical Details

The vulnerability exists due to insufficient validation of user-supplied file paths in the Jenkins file browser. On Windows systems, when processing certain path patterns, Jenkins incorrectly interprets these as absolute paths rather than properly constraining them to the intended directory.

The issue stems from how Jenkins handles directory separators and special path sequences on Windows. By using specific path traversal sequences, an attacker can bypass the intended directory restrictions and access arbitrary files on the file system.

Specifically, the vulnerability allows for:

  • Access to files outside the workspace directory on a Jenkins agent
  • Access to system files on the Jenkins controller

Impact

The security implications of this vulnerability are significant:

  1. Information Disclosure: Attackers with Overall/Read permission on a Windows controller or Job/Workspace permission on Windows agents can read the contents of arbitrary files on the system, potentially exposing sensitive configuration files, credentials, or other confidential information.

  2. Privilege Escalation: In certain configurations, this vulnerability could be chained with other issues to achieve privilege escalation within the Jenkins environment.

  3. Lateral Movement: Access to configuration files and credentials could potentially enable lateral movement to other systems in the network.

The vulnerability requires authenticated access but only with relatively low-privilege permissions that are commonly granted to Jenkins users.

Sorumlu Açıklama Süreci

Güvenlik açığını doğruladıktan sonra, bulgumu Jenkins güvenlik ekibine sorumlu açıklama süreci aracılığıyla hemen bildirdim. Ekip süreç boyunca hızlı ve profesyonel bir şekilde yanıt verdi:

  1. Detaylı kanıtlarla ilk raporu sundum
  2. Jenkins güvenlik ekibi tarafından doğrulama ve ileri inceleme yapıldı
  3. CVE atandı (CVE-2021-21683)
  4. Koordineli düzeltme geliştirme ve test süreci yürütüldü
  5. 6 Ekim 2021’de Jenkins güvenlik danışma belgesinin bir parçası olarak kamuya açıklandı

Çözüm

Jenkins ekibi bu güvenlik açığını aşağıdaki sürümlerde giderdi:

  • Jenkins 2.315 ve sonrası
  • Jenkins LTS 2.303.2 ve sonrası

Eğer Windows üzerinde etkilenen bir Jenkins sürümü çalıştırıyorsanız, mümkün olan en kısa sürede düzeltilmiş bir sürüme yükseltmeniz önemle tavsiye edilir.

Hemen yükseltemeyecek kullanıcılar için dosya tarayıcısı erişim izinlerini sınırlamak riski azaltmaya yardımcı olabilir, ancak tam bir yükseltme en güvenilir çözümdür.

Öğrenilen Dersler

Bu güvenlik açığı, bazı önemli güvenlik hususlarını vurgulamaktadır:

  1. Platforma özgü güvenlik açıkları yaygındır - bir işletim sisteminde güvenli olan bir uygulama, başka bir sistemde olmayabilir
  2. Dizin gezinme saldırıları modern uygulamalarda bile geçerli bir saldırı vektörü olmaya devam ediyor
  3. Jenkins gibi iyi bakımlı yazılımlar bile karmaşık bileşenlerde güvenlik açıkları içerebilir
  4. Uygun izin modelleri, güvenlik açıklarının etkisini sınırlamaya yardımcı olabilir

Referanslar

Bu gönderi CC BY 4.0 lisansı altındadır.