25 Ocak 2024Haber odasıGüvenlik Açığı / Yazılım Güvenliği

Açık kaynaklı sürekli entegrasyon/sürekli dağıtım ve dağıtım (CI/CD) otomasyon yazılımı Jenkins’in geliştiricileri, başarılı bir şekilde kullanılması halinde uzaktan kod yürütülmesine (RCE) yol açabilecek kritik bir hatanın da aralarında bulunduğu dokuz güvenlik açığını çözdü.

CVE tanımlayıcısının atandığı sorun CVE-2024-23897yerleşik komut satırı arayüzü aracılığıyla rastgele bir dosya okuma güvenlik açığı olarak tanımlandı (CLI)

Bakımcılar, “Jenkins, CLI komutlarını işlerken Jenkins denetleyicisindeki komut bağımsız değişkenlerini ve seçeneklerini ayrıştırmak için args4j kitaplığını kullanıyor.” söz konusu Çarşamba tavsiyesinde.

“Bu komut ayrıştırıcısı, dosya içeriğiyle (expandAtFiles) bir bağımsız değişkende @ karakterini ve ardından bir dosya yolunu değiştiren bir özelliğe sahiptir. Bu özellik varsayılan olarak etkindir ve Jenkins 2.441 ve öncesi, LTS 2.426.2 ve öncesi onu devre dışı bırakmaz. “

Bir tehdit aktörü, Jenkins denetleyici işleminin varsayılan karakter kodlamasını kullanarak Jenkins denetleyici dosya sistemindeki rastgele dosyaları okumak için bu tuhaflıktan yararlanabilir.

“Genel/Okuma” iznine sahip saldırganlar dosyaların tamamını okuyabilirken, bu izni olmayanlar CLI komutlarına bağlı olarak dosyaların ilk üç satırını okuyabilir.

Ek olarak, bu eksiklik, belirli kısıtlamalara rağmen, kriptografik anahtarlar içeren ikili dosyaların okunması için silah haline getirilebilir. Jenkins, ikili sırların çıkarılması durumunda bunun çeşitli saldırılara kapı açabileceğini söylüyor:

  • Kaynak Kök URL’leri aracılığıyla uzaktan kod yürütme
  • “Beni hatırla” çerezi aracılığıyla uzaktan kod yürütme
  • Derleme günlükleri aracılığıyla depolanan siteler arası komut dosyası çalıştırma (XSS) saldırıları yoluyla uzaktan kod yürütme
  • CSRF koruma bypass’ı aracılığıyla uzaktan kod yürütme
  • Jenkins’te saklanan sırların şifresini çözün
  • Jenkins’teki herhangi bir öğeyi silin
  • Java yığın dökümü indirme

Jenkins, “İkili veri içeren dosyalar okunabilirken, etkilenen özellik, denetleyici işleminin varsayılan karakter kodlamasını kullanarak bunları dizeler olarak okumaya çalışır” dedi.

“Bu muhtemelen bazı baytların başarıyla okunamamasına ve yer tutucu değerle değiştirilmesine neden olabilir. Hangi baytların okunup okunamayacağı bu karakter kodlamasına bağlıdır.”

Güvenlik araştırmacısı Yaniv Nizry, Jenkins 2.442 ve LTS 2.426.3’te komut ayrıştırıcı özelliği devre dışı bırakılarak düzeltilen kusuru keşfetme ve raporlama konusunda itibar kazandı.

Düzeltme eki uygulanıncaya kadar kısa vadeli bir geçici çözüm olarak CLI’ye erişimin kapatılması önerilir.

Bu gelişme, Jenkins’in CorePlague (CVE-2023-27898 ve CVE-2023-27905) olarak adlandırılan ve hedeflenen sistemlerde kod yürütülmesine yol açabilecek bir çift ciddi güvenlik açığını ele almasından neredeyse bir yıl sonra gerçekleşti.



siber-2