CVE-2026-44645
Təsvir
LiquidJS təmiz JavaScript dilində yazılmış Shopify/GitHub Pages ilə uyğun şablon mühərrikidir. 10.25.7 və daha aşağı versiyalarda, gövdəsi boş olan {% for %} (və ya {% tablerow %}) teqi vasitəsilə renderLimit seçimi tamamilə yan keçilə bilər. renderLimit seçimi docs/source/tutorials/dos.md sənədində "hər bir render() çağırışı tərəfindən sərf olunan vaxtı məhdudlaşdıraraq bunu yumşaldan" mexanizm kimi təsvir edilmişdir. Hər iterasiya üçün vaxt yoxlamasına yalnız gövdə ən azı bir şablon düyünü ehtiva etdikdə çatılır, buna görə də {%- for i in (1..N) -%}{%- endfor -%} kimi şablon renderLimit-ə müraciət etmədən bütün kolleksiyanı iterasiya edir. Konfiqurasiya edilmiş 50 ms renderLimit ilə, tək bir parseAndRenderSync çağırışının 2.26 saniyə (~limitdən 45 dəfə çox) sərf etdiyi müşahidə olunmuşdur və bu göstərici memoryLimit-ə qədər N ilə xətti şəkildə artır ki, bu da aşağı imtiyazlı şablon müəllifinin hadisələr dövrü (event-loop) axınını hücumçunun seçdiyi müddət ərzində bloklamağa imkan verir. DoS qoruması üçün sonlu renderLimit-ə güvənən tətbiqlərdə (çox istifadəçili şablon müəllifliyi mühitlərində yaygındır), xüsusi hazırlanmış tək bir şablon vasitəsilə Node.js event-loop işçisinin hücumçu tərəfindən idarə olunan müddət ərzində monopollaşdırılmasına məcbur edilə bilər ki, bu da potensial olaraq davam edən sorğuların dayanmasına səbəb olur və yalnız əlçatanlığa təsir göstərir. Bu problem 10.26.0 versiyasında düzəldilmişdir.
Necə düzəltmək olar
- liquidjs10.26.0 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| liquidjsnpm | v < 10.26.0 | 10.26.0 |
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.