CVE-2025-62496
Təsvir
Həddindən artıq çox rəqəmli sətirdən BigInt yaratmağa çalışarkən QuickJS mühərrikinin BigInt sətir analizu məntiqində (js_bigint_from_string) zəiflik mövcuddur. Funksiya BigInt-i saxlamaq üçün tələb olunan bit sayını (n_bits) aşağıdakı düsturla hesablayır: $$\text{n\_bits} = (\text{n\_digits} \times 27 + 7) / 8 \quad (\text{radix 10 üçün})$$ * Böyük giriş sətirləri üçün (məsələn, onluq sistemdə $79,536,432$ və ya daha çox rəqəm), ara hesablama $(\text{n\_digits} \times 27 + 7)$ standart imzalı 32-bit tam ədədin maksimum dəyərini aşır ki, bu da Integer Overflow-a səbəb olur. * Bu dövriyyə nəticəsində n_bits dəyəri gözlənilmədən kiçik və ya hətta mənfi olur. * Səhv n_bits dəyəri daha sonra BigInt obyekti üçün tələb olunan yaddaş "limb"-lərinin sayı olan n_limbs-i hesablamaq üçün istifadə edilir. n_bits çox kiçik olduğu üçün hesablanmış n_limbs də ciddi şəkildə azalmış olur. * Funksiya bu azalmış n_limbs dəyərini istifadə edərək JSBigInt obyektini ayırır. * Funksiya daha sonra faktiki BigInt məlumatlarını ayrılmış obyektə yazmağa çalışdıqda, kiçik bufer ölçüsü tezliklə aşılır və məlumatlar ayrılmış r->tab massivinin sonundan kənara yazıldığı üçün Heap Out-of-Bounds Write baş verir.
Necə düzəltmək olar
- quickjs_project quickjs2025-09-13 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| quickjs_project quickjs | v < 2025-09-13 | 2025-09-13 |
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.