CVE-2026-31824
Təsvir
Sylius Symfony üzərində açıq mənbəli e-ticarət frameworküdür. Promosyon istifadə limitinin tətbiqində Time-of-Check To Time-of-Use (TOCTOU) yarış vəziyyəti (race condition) aşkar edilmişdir. Eyni zəiflik sinfi promosyon istifadə limitinə (Promotion entity-lərində qlobal istifadə sayğacı), kupon istifadə limitinə (PromotionCoupon entity-lərində qlobal istifadə sayğacı) və kuponun müştəri üzrə istifadə limitinə (PromotionCoupon entity-lərində müştəri üzrə istifadə sayı) təsir edir. Hər üç halda uyğunluq yoxlaması validasiya zamanı istifadə sayğacını (və ya sifariş sayını) yaddaşdakı Doctrine entity-dən oxuyur, faktiki istifadə artımı isə OrderPromotionsUsageModifier-də daha sonra sifarişin tamamlanması zamanı baş verir — iki mərhələ arasında verilənlər bazası səviyyəsində heç bir kilidləmə və ya atomik əməliyyat yoxdur. Doctrine mütləq dəyəri (SET used = 1) atomik artım (SET used = used + 1) əvəzinə yazdığına və təsirlənən entity-lərdə optimist kilidləmə olmadığına görə, eyni vaxtda gələn sorğuların hamısı eyni köhnəlmiş istifadə sayğaclarını oxuyur və uyğunluq yoxlamalarından eyni vaxtda keçir. Hücumçu bundan istifadə edərək eyni məhdud istifadəli promosyon və ya kuponla bir neçə səbət hazırlayıb eyni vaxtda PATCH /api/v2/shop/orders/{token}/complete sorğuları göndərə bilər. Bütün sorğular istifadə limiti yoxlamalarından keçir və uğurla tamamlanır, bununla da bir dəfəlik istifadə üçün nəzərdə tutulmuş promosyon və ya kupon ixtiyari sayda dəfə istifadə oluna bilər. Müştəri üzrə limit də eyni şəkildə bir müştərinin eyni vaxtda bir neçə sifarişi tamamlaması ilə yan keçilə bilər. Bu zəiflikdən istifadə etmək üçün autentifikasiya tələb olunmur. Bu, məhdud istifadəli promosyonların və endirim kuponlarının limitsiz istifadəsi nəticəsində birbaşa maliyyə itkisinə səbəb ola bilər. Problem 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 və daha yuxarı versiyalarda düzəldilmişdir.
Necə düzəltmək olar
- 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 və ya daha yeni versiya
- 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 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| 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 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.