CVE-2026-73193
Təsvir
Perl üçün DBI-ın 1.652-dən əvvəlki versiyaları, preparse tərəfindən hesablanan çıxış buferi ölçüsündə tam ədəd dövriyyəsi (integer wraparound) vasitəsilə 32-bitli perl-də yığınla sərhədləri aşan yazmaya (heap out-of-bounds write) şərait yaradır. preparse öz çıxış buferini ən uzun ':p99999' genişlənməsi üçün hər giriş baytına yeddi çıxış baytı ayırmaqla `newSV(strlen(statement) * 7 + 16)` ilə rezerv edir. Hasil 32-bitli perl quruluşunda 32 bit genişliyində olan STRLEN-də hesablanır, buna görə də 613,566,757 baytlıq bir statement 4,294,967,299-a vurulur, modulo 2^32 üzrə 3-ə çevrilir və 19 bayt rezerv edilir. Daha sonra parser heç bir tutum yoxlaması olmadan statement-i xammal göstərici (raw pointer) vasitəsilə kopyalayır və bütün 585 MB-lıq girişi ayrılmış sahənin sonundan kənara yazır. 99,999 yer tutucu (placeholder) limiti adi yer tutucu olmayan məzmunla çatılan bu yolu məhdudlaşdırmır. 32-bitli perl-də preparse funksiyasına həmin uzunluqda etibarsız statement ötürən istənilən çağırıcı, hücum edən tərəfindən idarə olunan baytlarla yığınla sərhədləri aşan yazma əldə edir. 64-bitli STRLEN ilə qurulan sistemlər bundan təsirlənmir, çünki orada dövriyyə baş verməsi üçün təxminən 2.3 eksabaytlıq statement tələb olunur.
Necə düzəltmək olar
- DBI1.652 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| DBI | v < 1.652 | 1.652 |
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.