CVE-2026-60074
Təsvir
Perl üçün Date::Manip versiya 7.00 və daha aşağı versiyalarda, check funksiyasındakı rəqəm diapazonu testlərindən keçən non-ASCII onluq rəqəmləri vasitəsilə korlanmış tarixlər qaytarılır. Parse reqeksleri il, ay və günü `\d` qısaltması ilə tutur ki, bu da simvol sətirində yalnız `[0-9]` ilə deyil, bütün Unicode onluq rəqəm xüsusiyyəti olan `\p{Nd}` ilə uyğunlaşır. Daha sonra Date::Manip::Base::check tutulmuş sahələri yalnız riyazi müqayisələrle (`$y<1 || $y>9999`, `$m<1 || $m>12`, `$d<1 || $d>$days`) yoxlayır və _parse_check rəqəmləşdirilmiş sahələri (`$y+0`) saxlayır. Perl sətiri ASCII rəqəmi olmayan ilk simvolda kəsir, buna görə də ön simvolları ASCII rəqəmləri olan bir sahə diapazon daxilindəki prefiks kimi rəqəmləşdirilir və hər bir testi ödəyir: üç ASCII rəqəmindən sonra gələn U+0664 ARABIC-INDIC DIGIT FOUR simvolu olan il sahəsi 202 kimi rəqəmləşdirilir və nəticədə 0202 ili alınır; ay və ya gün sahəsindəki bir non-ASCII rəqəm həmin sahələri eyni şəkildə sürüşdürür. Saat, dəqiqə və saniyə sahələri açıq ASCII simvol siniflərinə (`0?[0-9]`, `[0-5][0-9]`) uyğun gəlir və sürüşmür, lakin kəsr saat və ya dəqiqə sahəsindəki non-ASCII rəqəm kəsri kəsir. ParseDate() və ya Date::Manip::Date->parse() funksiyalarına etibarsız simvol sətiri ötürən istənilən çağırıcı, heç bir parse xətası olmadan, təhlil etdiyi sətirdən fərqlənən tarix ala bilər. Təhlil edilmiş tarixin son istifadə tarixinin yoxlanılması və ya saxlama pəncərəsi kimi məntiqləri idarə etdiyi hallarda, bu sürüşmə fərq edilmir.
Necə düzəltmək olar
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Date-Manip | v ≤ 7.00 | — |
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.