Laravel Framework kusuru, saldırganların kötü amaçlı JavaScript yürütmesine izin verir


Laravel çerçevesinde, özellikle 11.9.0 ve 11.35.1 arasındaki versiyonları etkileyen önemli bir güvenlik açığı tespit edilmiştir.

Sorun, uygulama hata ayıklama modunda çalışırken hata sayfasındaki istek parametrelerinin yanlış kodlanması etrafında döner ve yansıtılan siteler arası senaryo (XSS).

Bu kusur CVE-2024-13918 CVE tanımlayıcısı atandı ve GitHub’ın raporuna göre CVSS skoru 8.0 ile yüksek şiddet olarak etiketlendi.

Güvenlik açığı, URL parametreleri ve istek gövdeleri dahil olmak üzere ayrıntılı istek bilgilerini görüntüleyen Laravel’in hata ayıklama modu hata sayfasının davranışından yararlanır.

Ancak, bu veriler sunulduğunda, uygun kodlamadan yoksundur ve saldırganların kullanıcının tarayıcısında yürütülen kötü niyetli JavaScript kodu enjekte etmesini sağlar.

Bu, uygulamanın hata ayıklama modunun etkin olması koşuluyla, bir kullanıcı saldırgan tarafından sağlanan bir bağlantıya eriştiğinde (app_debug = true) ortaya çıkabilir.

Güvenlik Açığı Açıklaması

Laravel hata ayıklama modundayken (app_debug = true) ve web uygulaması bir hata döndürdüğünde (HTTP durumu 5xx), istek ayrıntılarını içeren bir hata sayfası görüntülenir.

Laravel’in hata sayfasındaki kod snippet’i, isteğin vücut verilerinin uygun kodlama olmadan nasıl gömüldüğünü göstermektedir:

   
                   
                

                    {!! $exception->requestBody() ?: 'No body data' !!}

                

            

{!! !!}, enjekte edilen JavaScript’in kod olarak yürütülmesine izin vererek HTML kodlamasını devre dışı bırakır.

Kavram kanıtı

Bu güvenlik açığını göstermek için şu adımları izleyebilirsiniz:

  1. Hata Ayıklama Modunu Etkinleştir: App_debug = true .env dosyasında ayarlandığından emin olun.
  2. Bir Poctest Rotası Oluşturun: Bir hatayı tetiklemek için bir uç nokta ekleyin. Örneğin:
use Illuminate\Support\Facades\Route;

Route::get('/poc-url', function () {

    return 0/0; // This will throw a division by zero error.

});
  1. Sömürme: Http: // localhost: 8000/poc-url gibi hazırlanmış bir URL’yi ziyaret edin.. Bu URL’ye erişildiğinde ve hata oluştuğunda, hata sayfası enjekte edilen JavaScript’i görüntüler ve yürütür.

Bu güvenlik açığının etkisi önemlidir. Saldırganlar, kullanıcılar tarafından ziyaret edildiğinde etkilenen web uygulaması bağlamında keyfi JavaScript yürüten URL’ler oluşturabilirler.

Bu, veri hırsızlığı veya oturum kaçırma da dahil olmak üzere çeşitli kötü niyetli eylemlere izin verir.

Neyse ki, bu sorun Laravel Framework’ün 11.36.0 sürümünde ele alınmıştır. Kullanıcılara, bu güvenlik açığına karşı koruma sağlamak için uygulamalarını bu sürüme veya daha sonra güncellemeleri şiddetle tavsiye edilir.

Web uygulamalarının güvenliği çok önemlidir ve Laravel’deki bu vurgulanan kusur gibi güvenlik açıkları, düzenli güncellemelerin ve sağlam güvenlik uygulamalarının öneminin altını çizmektedir.

Laravel gibi çerçevelerin popülaritesi büyümeye devam ettikçe, bu araçların bütünlüğünün sağlanması, kullanıcı verilerini korumak ve kötü niyetli etkinlikleri önlemek için çok önemlidir.

Are you from SOC/DFIR Teams? – Analyse Malware Incidents & get live Access with ANY.RUN -> Start Now for Free.



Source link