JudgeO Çevrimiçi Kod Düzenleyici Kusuru Saldırganların Kodu Yürütmesine İzin Veriyor


Popüler çevrimiçi kod düzenleyicisi JudgeO’da kritik bir kusur tespit edildi.

Bu güvenlik açığından yararlanılması halinde, saldırganların kök düzeyindeki ayrıcalıklarla rastgele kod yürütmesine olanak tanınarak sistemler ve veri bütünlüğü için önemli bir tehdit oluşturulabilir.

Is Your Network Under Attack? - Read CISO’s Guide to Avoiding the Next Breach - Download Free Guide

Tanımlayıcı altında takip edilen güvenlik açığı, GitHub tarafından bildirildiği üzere JudgeO çevrimiçi kod düzenleyicisinde keşfedildi.

Geliştiriciler ve eğitim kurumları tarafından kodlama ve test amacıyla yaygın olarak kullanılan bu aracın, kötü niyetli aktörlerin yararlanabileceği ciddi bir güvenlik açığı içerdiği tespit edildi.

Bu sürüm aşağıdaki güvenlik açıklarını giderir:

  • CVE-2024-28185
  • CVE-2024-28189
  • CVE-2024-29021

Sorunun özü, uygulamanın korumalı alan dizini içindeki sembolik bağlantıları (sembolik bağlantılar) işlemesinde yatmaktadır.

Saldırganlar, kritik sistem dosyalarına işaret eden sembolik bağlantılar oluşturarak bu gözetimden yararlanabilirler.

Detaylar:

JudgeO sandbox dizinine bir run_script yazdığında, sembolik bağlantı nedeniyle yanlışlıkla bu bağlantılı sistem dosyalarına yazar.

unless submission.is_project

      # gsub is mandatory!

      command_line_arguments = submission.command_line_arguments.to_s.strip.encode("UTF-8", invalid: :replace).gsub(/[$&;<>|`]/, "")

      File.open(run_script, "w") { |f| f.write("#{submission.language.run_cmd} #{command_line_arguments}")}

    end

Güvenlik açığı bir gönderim yürütülürken ortaya çıkıyor. JudgeO’nun süreci sandbox dizinine bir run_script yazmayı içerir.

Ancak saldırgan run_script yoluna zaten bir sembolik bağlantı yerleştirmişse, f.write koddaki işlem, sistemdeki korumalı alana alınmamış rastgele bir dosyaya yazacaktır.

Belge

Etkili Kötü Amaçlı Yazılım Analizi için ANY.RUN’u Şirketinize Entegre Edin

SOC, Tehdit Araştırması veya DFIR departmanlarından mısınız? Öyleyse, 400.000 bağımsız güvenlik araştırmacısından oluşan çevrimiçi topluluğa katılabilirsiniz:

  • Gerçek Zamanlı Tespit
  • İnteraktif Kötü Amaçlı Yazılım Analizi
  • Yeni Güvenlik Ekibi Üyelerinin Öğrenmesi Kolay
  • Maksimum veriyle ayrıntılı raporlar alın
  • Linux’ta ve tüm Windows İşletim Sistemi Sürümlerinde Sanal Makineyi Kurma
  • Kötü Amaçlı Yazılımlarla Güvenli Bir Şekilde Etkileşim Kurun

Tüm bu özellikleri şimdi sanal alana tamamen ücretsiz erişimle test etmek istiyorsanız:

Bu güvenlik açığı, saldırganın sistem komut dosyalarının üzerine yazmasına ve korumalı alan ortamının sınırları dışında kod yürütmesine olanak tanır.

Güvenlik açığı uygulamanın chown Kullanıcıların değiştirebileceği sanal alan içindeki dosyalar üzerinde komut.

Saldırganlar, sanal alanın içinden dışarıdaki bir dosyaya sembolik bir bağlantı (sembolik bağlantı) oluşturarak bundan yararlanabilirler.

Bu şunları sağlar: chown Sistemdeki herhangi bir dosyada yürütülecek, yalnızca dahili sanal alan işlemleri için tasarlanan komut.

Detaylar:

Özel sorun, uygulamanın bir dosya adının sahipliğini değiştirmeye çalıştığı bağlamda ortaya çıkıyor run_scriptBu, kullanıcı tarafından gönderilen kodun yürütülmesi için çok önemlidir.

İlgili kod pasajı aşağıdaki gibidir:

`sudo chown $(whoami): #{run_script} && rm #{run_script}` unless submission.is_project

Gönderim bir proje olarak işaretlenmediği sürece bu komut yürütülür.

Stratejik olarak adında bir sembolik bağlantı oluşturarak run_script Kritik bir sistem dosyasına işaret eden bir saldırgan, uygulamayı harici bir dosyanın sahipliğini değiştirmeye zorlayabilir ve bu dosya üzerinde etkili bir şekilde kontrol sahibi olabilir.

CVE-2024-29021: Güvenli Olmayan Varsayılan Yapılandırma Yoluyla SSRF’den Sandbox’a Kaçış

Güvenlik açığı, Judge0’ın varsayılan yapılandırmasından, özellikle de sanal alan ortamındaki ağ isteklerini işlemesinden kaynaklanıyor.

Bu yapılandırma kusuru, bir saldırganın sunucu tarafındaki uygulamayı istenmeyen bir konuma istekte bulunmaya teşvik ettiği bir saldırı olan SSRF aracılığıyla kullanılabilir.

Detaylar:

Judge0 etiketli bir yapılandırma seçeneği içerir enable_networketkinleştirildiğinde korumalı alana alınmış uygulamanın ağ isteklerini gerçekleştirmesine olanak tanır.

Buna dahili Docker ağı içerisinde erişilebilen Judge0’ın PostgreSQL veritabanı gibi dahili hizmetlerle iletişim de dahildir.

Bu istismar aşağıdaki kritik kod satırlarını hedef alıyor:

command = "isolate #{cgroups} \

    -s \

    -b #{box_id} \

    -M #{metadata_file} \

    #{submission.redirect_stderr_to_stdout ? "--stderr-to-stdout" : ""} \

    #{submission.enable_network ? "--share-net" : ""} \

    -t #{submission.cpu_time_limit} \

    -x #{submission.cpu_extra_time} \

    -w #{submission.wall_time_limit} \

    -k #{submission.stack_limit} \

    -p#{submission.max_processes_and_or_threads} \

    #{submission.enable_per_process_and_thread_time_limit ? (cgroups.present? ? "--no-cg-timing" : "") : "--cg-timing"} \

    #{submission.enable_per_process_and_thread_memory_limit ? "-m " : "--cg-mem="}#{submission.memory_limit} \

    -f #{submission.max_file_size} \

    -E HOME=/tmp \

    -E PATH=\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\" \

    -E LANG -E LANGUAGE -E LC_ALL -E JUDGE0_HOMEPAGE -E JUDGE0_SOURCE_CODE -E JUDGE0_MAINTAINER -E JUDGE0_VERSION \

    -d /etc:noexec \

    --run \

    -- /bin/bash run \

    < #{stdin_file} > #{stdout_file} 2> #{stderr_file} \

    "
    puts "[#{DateTime.now}] Running submission #{submission.token} (#{submission.id}):"
    puts command.gsub(/\s+/, " ")
    puts
    `#{command}`

Kabuk komutuna eklenen tüm değişkenler (dize değişmezleri veya sayısal değerler) kontrol edildiğinden, bu komut kurulumu genellikle komut ekleme güvenlik açıklarına karşı güvenlidir.

Ancak SSRF güvenlik açığı, bir saldırganın veritabanıyla etkileşime girerek ilgili sütunların veri türlerini değiştirerek bu ayarları değiştirmesine olanak tanır ve bu da potansiyel olarak komut enjeksiyonuna yol açar.

Bu olay, siber güvenlik konusunda dikkatli olmanın öneminin açık bir hatırlatıcısıdır.

JudgeO geliştiricilerinin gösterdiği gibi, güvenlik sorunlarının çözümünde hızlı eylem ve şeffaflık kritik öneme sahiptir.

Kullanıcılar ise yazılımlarını güncelleme konusunda proaktif kalmalı ve olası güvenlik açıkları hakkında bilgi sahibi olmalıdır.

Combat Email Threats with Easy-to-Launch Phishing Simulations: Email Security Awareness Training -> Try Free Demo 



Source link