CVE-2026-40887
Açıklama
Vendure, açık kaynaklı bir headless ticaret platformudur. Versiyon 1.7.4 ile başlayıp 2.3.4, 3.5.7 ve 3.6.2 versiyonlarından önceki sürümlerde, Vendure Shop API üzerinde kimlik doğrulaması gerektirmeyen bir SQL injection zafiyeti bulunmaktadır. Kullanıcı tarafından kontrol edilen bir sorgu dizesi parametresi, parametrelendirme veya doğrulama yapılmadan doğrudan ham bir SQL ifadesine eklenmekte ve bu durum bir saldırganın veritabanı üzerinde rastgele SQL komutları çalıştırmasına olanak tanımaktadır. Bu durum desteklenen tüm veritabanı arka uçlarını (PostgreSQL, MySQL/MariaDB, SQLite) etkilemektedir. Admin API de etkilenmiş olsa da buradaki istismar işlemi kimlik doğrulaması gerektirmektedir. Versiyonlar 2.3.4, 3.5.7 ve 3.6.2 bir yama içermektedir. Hemen yükseltme yapamayanlar için Vendure, sınırda `languageCode` girdisini doğrulamak amacıyla `RequestContextService.getLanguageCode` kullanan bir hotfix yayınlamıştır. Bu işlem, enjeksiyon yüklerinin herhangi bir sorguya ulaşmadan önce engellenmesini sağlar. Hotfix, `packages/core/src/service/helpers/request-context/request-context.service.ts` dosyasındaki mevcut `getLanguageCode` metodunu değiştirir. Geçersiz değerler sessizce düşürülür ve bunun yerine kanalın varsayılan dili kullanılır. Yamalanmış versiyonlar ayrıca derinlemesine savunma olarak, zafiyet içeren SQL interpolasyonunu parametreli bir sorguya dönüştürmektedir.
Nasıl düzeltilir
- @vendure/core3.5.7, 3.6.2, 2.3.4 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| @vendure/corenpm | 3.0.0 ≤ v < 3.5.7, 3.6.0 ≤ v < 3.6.2, 1.7.4 ≤ v < 2.3.4 | 3.5.7, 3.6.2, 2.3.4 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.