CVE-2025-62495
Açıklama
QuickJS düzenli ifade motorunda (libregexp), bayt kodu arabelleği boyutunun tutarsız bir şekilde temsil edilmesi nedeniyle bir tamsayı taşması güvenlik açığı bulunmaktadır. * Düzenli ifade bayt kodu, boyut üyesi için doğru şekilde bir $\text{size}\_\text{t}$ (işaretsiz bir tür, tipik olarak 64 bit) kullanan bir DynBuf yapısında saklanır. * Ancak, re_emit_op_u32 ve diğer dahili ayrıştırma rutinleri gibi birçok fonksiyon, bu DynBuf $\text{size}\_\text{t}$ değerini yanlış şekilde işaretli bir int'e (tipik olarak 32 bit) dönüştürür veya bu tür bir değişkende saklar. * Büyük veya karmaşık bir düzenli ifade (bir Proof-of-Concept'te özyinelemeli bir desen tarafından üretilenler gibi), bayt kodu boyutunun $2^{31}$ baytı (işaretli 32 bit tamsayı için maksimum pozitif değer) aşmasına neden olduğunda, boyut değeri sarmalanır ve int değişkeninde saklandığında negatif bir tamsayı ile sonuçlanır (Tamsayı Taşması). * Bu negatif değer daha sonra ofset hesaplamalarında kullanılır. Örneğin, re_parse_disjunction gibi fonksiyonlarda, negatif boyut bir atlama talimatını yamalamak için bir ofset (pos) hesaplamak üzere kullanılır. * Bu negatif ofset daha sonra arabellek işaretçisine (s->byte\_code.buf + pos) yanlış şekilde eklenir ve aşağıdaki kod parçacığının ilk satırında sınır dışı yazmaya yol açar: put_u32(s->byte_code.buf + pos, len);
Nasıl düzeltilir
- quickjs_project quickjs2025-09-13 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| quickjs_project quickjs | v < 2025-09-13 | 2025-09-13 |
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.