29 Nis 2024Haber odasıKorumalı Alan / Güvenlik Açığı

Judge0 açık kaynaklı çevrimiçi kod yürütme sisteminde, hedef sistemde kod yürütmek için kullanılabilecek çok sayıda kritik güvenlik açığı ortaya çıktı.

Avustralyalı siber güvenlik firması Tanto Security, bir raporda, doğası gereği hepsi kritik olan üç kusurun, “yeterli erişime sahip bir saldırganın sanal alandan kaçış gerçekleştirmesine ve ana makinede kök izinleri almasına” olanak tanıdığını söyledi.rapor bugün yayınlandı.

Yargıç0 (“sıfır yargıç” olarak telaffuz edilir) tarif edildi aday değerlendirmesi, e-öğrenme ve çevrimiçi kod editörleri ve IDE’ler gibi çevrimiçi kod yürütme özellikleri gerektiren uygulamalar oluşturmak için kullanılabilecek “sağlam, ölçeklenebilir ve açık kaynaklı bir çevrimiçi kod yürütme sistemi” olarak geliştiricileri tarafından.

Web sitesine göre hizmet, diğerlerinin yanı sıra AlgoDaily, CodeChum ve PYnative gibi 23 müşteri tarafından kullanılıyor. Proje GitHub’da 412 kez çatallandı bugüne kadar.

Mart 2024’te Daniel Cooper tarafından keşfedilen ve bildirilen kusurlar aşağıda listelenmiştir:

  • CVE-2024-28185 (CVSS puanı: 10,0) – Uygulama, bir saldırganın isteğe bağlı dosyalara yazmak ve sanal alan dışında kod yürütme elde etmek için kullanabileceği sanal alan dizini içine yerleştirilen sembolik bağlantıları hesaba katmaz.
  • CVE-2024-28189 (CVSS puanı: 10,0) – UNIX kullanımından kaynaklanan CVE-2024-28185 için bir yama atlaması chown komutu korumalı alan içindeki güvenilmeyen bir dosyada. Saldırgan, sanal alanın dışındaki bir dosyaya sembolik bir bağlantı (sembolik bağlantı) oluşturarak bunu kötüye kullanabilir ve saldırganın sanal alanın dışındaki rastgele dosyalar üzerinde chown çalıştırmasına olanak tanıyabilir.
  • CVE-2024-29021 (CVSS puanı: 9,1) – Judge0’ın varsayılan yapılandırması, hizmeti Sunucu Tarafı İstek Sahteciliği (SSRF) yoluyla sanal alandan kaçmaya karşı savunmasız bırakır. Bu, Judge0 API’sine yeterli erişime sahip bir saldırganın, hedef makinede kök olarak korumalı alansız kod yürütme elde etmesine olanak tanır.

Sorunun kökeni “adlı bir Ruby betiğinden kaynaklanıyor”isulate_job.rb,” sandbox’ın kurulmasından, kodun çalıştırılmasından ve yürütme sonuçlarının saklanmasından sorumludur.

Spesifik olarak, korumalı alanda olmayan sistem üzerinde rastgele bir dosyaya yazmaya izin verecek şekilde gönderim diline dayalı olarak programı yürütmek için bir bash betiği ayarlanmadan önce dizinde sembolik bir bağlantı oluşturulmasını gerektirir.

Bir tehdit aktörü, sistemdeki komut dosyalarının üzerine yazmak ve sandbox dışında ve gönderim işini çalıştıran Docker konteynerinde kod yürütme elde etmek için bu kusurdan yararlanabilir.

Dahası, saldırgan, Docker konteyneri kullanılarak çalıştırıldığı için ayrıcalıklarını Docker konteynerinin dışına çıkarabilir. ayrıcalıklı bayrak docker-compose.yml’de belirtildiği gibi.

Judge0’dan Herman Došilović, “Bu, saldırganın Linux ana dosya sistemini bağlamasına ve saldırganın daha sonra sisteme erişim sağlamak için dosyalar yazmasına (örneğin, kötü niyetli bir cron işi) olanak tanıyacak” dedi.

“Bu noktadan itibaren saldırgan, veritabanı, dahili ağlar, Judge0 web sunucusu ve Linux ana bilgisayarında çalışan diğer uygulamalar da dahil olmak üzere Judge0 sistemine tam erişime sahip olacak.”

Öte yandan CVE-2024-29021, Judge0’ın dahili Docker ağında bulunan PostgreSQL veritabanıyla iletişim kurmasına izin veren, böylece saldırganın veritabanına bağlanmak ve ilgili veri türünü değiştirmek için SSRF’yi silahlandırmasına olanak tanıyan bir yapılandırmayla ilgilidir. sütunlar ve sonuçta komut enjeksiyonu elde edin.

Sorumlu açıklamanın ardından eksiklikler giderildi. sürüm 1.13.1 18 Nisan 2024’te yayınlandı. Judge0 kullanıcılarının, olası tehditleri azaltmak için en son sürüme güncelleme yapmaları önerilir.



siber-2