CVE-2026-31824
Açıklama
Sylius, Symfony üzerinde çalışan açık kaynaklı bir eCommerce framework'üdür. Promosyon kullanım sınırı uygulamasında bir Time-of-Check To Time-of-Use (TOCTOU) yarış durumu (race condition) keşfedilmiştir. Aynı zafiyet sınıfı; promosyon kullanım sınırını (Promotion varlıklarındaki genel kullanım sayacı), kupon kullanım sınırını (PromotionCoupon varlıklarındaki genel kullanım sayacı) ve müşteri başına kupon kullanım sınırını (PromotionCoupon varlıklarındaki müşteri başına kullanım sayısı) etkilemektedir. Her üç durumda da uygunluk kontrolü, doğrulama sırasında bellek içi bir Doctrine varlığından kullanım sayacını (veya sipariş sayısını) okurken, gerçek kullanım artırımı OrderPromotionsUsageModifier içinde daha sonra, sipariş tamamlama sırasında gerçekleşir ve bu iki aşama arasında veritabanı düzeyinde kilitleme veya atomik işlemler bulunmamaktadır. Doctrine, atomik bir artırım (SET used = used + 1) yerine mutlak bir değer (SET used = 1) gönderdiği ve etkilenen varlıklarda iyimser kilitleme (optimistic locking) eksik olduğu için, eşzamanlı isteklerin tamamı aynı güncel olmayan kullanım sayılarını okur ve uygunluk kontrollerini aynı anda geçer. Bir saldırgan, aynı sınırlı kullanıma sahip promosyon veya kuponla birden fazla sepet hazırlayıp eşzamanlı olarak PATCH /api/v2/shop/orders/{token}/complete istekleri göndererek bunu istismar edebilir. Tüm istekler kullanım sınırı kontrollerinden geçer ve başarıyla tamamlanır, böylece tek kullanımlık bir promosyon veya kuponun rastgele sayıda kez kullanılmasına izin verilir. Müşteri başına sınır, tek bir müşterinin eşzamanlı olarak birden fazla siparişi tamamlamasıyla aynı şekilde atlatılabilir. Bu zafiyeti istismar etmek için kimlik doğrulaması gerekmemektedir. Bu durum, sınırlı kullanıma sahip promosyonların ve indirim kuponlarının sınırsız kullanımı yoluyla doğrudan finansal kayba yol açabilir. Sorun şu versiyonlarda ve üzerindekilerde düzeltilmiştir: 1.9.12, 1.10.16, 1.11.17, 1.12.23, 1.13.15, 1.14.18, 2.0.16, 2.1.12, 2.2.3.
Nasıl düzeltilir
- sylius sylius1.9.12, 1.10.16, 1.11.17, 1.12.23, 1.13.15, 1.14.18, 2.0.16, 2.1.12, 2.2.3 ya da sonraki bir sürüm
- sylius/sylius1.9.12, 1.10.16, 1.11.17, 1.12.23, 1.13.15, 1.14.18, 2.0.16, 2.1.12, 2.2.3 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| sylius sylius | v < 1.9.12, 1.10.0 ≤ v < 1.10.16, 1.11.0 ≤ v < 1.11.17, 1.12.0 ≤ v < 1.12.23, 1.13.0 ≤ v < 1.13.15, 1.14.0 ≤ v < 1.14.18, 2.0.0 ≤ v < 2.0.16, 2.1.0 ≤ v < 2.1.12, 2.2.0 ≤ v < 2.2.3 | 1.9.12, 1.10.16, 1.11.17, 1.12.23, 1.13.15, 1.14.18, 2.0.16, 2.1.12, 2.2.3 |
| sylius/syliusPackagist | v < 1.9.12, 1.10.0 ≤ v < 1.10.16, 1.11.0 ≤ v < 1.11.17, 1.12.0 ≤ v < 1.12.23, 1.13.0 ≤ v < 1.13.15, 1.14.0 ≤ v < 1.14.18, 2.0.0 ≤ v < 2.0.16, 2.1.0 ≤ v < 2.1.12, 2.2.0 ≤ v < 2.2.3 | 1.9.12, 1.10.16, 1.11.17, 1.12.23, 1.13.15, 1.14.18, 2.0.16, 2.1.12, 2.2.3 |
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.