CVE-2024-51744
Təsvir
golang-jwt, JSON Web Token-lərin Go dilindəki tətbiqidir. `ParseWithClaims` funksiyasındakı xəta davranışının qeyri-dəqiq sənədləşdirilməsi istifadəçilərin xətaları lazımi qaydada yoxlamadığı vəziyyətlərə səbəb ola bilər. Xüsusilə, əgər token həm vaxtı keçmiş, həm də etibarsızdırsa, `ParseWithClaims` tərəfindən qaytarılan xətalar hər iki xəta kodunu ehtiva edir. İstifadəçilər `error.Is` vasitəsilə yalnız `jwt.ErrTokenExpired` xətasını yoxlayarlarsa, daxil edilmiş `jwt.ErrTokenSignatureInvalid` xətasını nəzərə almayacaqlar və beləliklə, potensial olaraq etibarsız tokenləri qəbul edəcəklər. Xəta idarəetmə məntiqi ilə bağlı düzəliş `v5` budaqdan `v4` budağına köçürülüb. Bu məntiqdə `ParseWithClaims` funksiyası "təhlükəli" vəziyyətlərdə (məsələn, etibarsız imza) dərhal cavab qaytarır və birləşdirilmiş xətaları yalnız imzanın etibarlı olduğu, lakin sonrakı təsdiqləmələrin uğursuz olduğu hallar üçün məhdudlaşdırır (məsələn, imza etibarlıdır, lakin həm vaxtı keçib, həm də yanlış auditoriyaya malikdir). Bu düzəliş 4.5.1 versiyasının tərkib hissəsidir. Bildiririk ki, bu, mövcud funksiyanın davranışını dəyişir və 100% geri uyğunluğa malik deyil, buna görə də 4.5.1 versiyasına yeniləmək kodunuzda xətaların yaranmasına səbəb ola bilər. Əgər 4.5.0 versiyasına yeniləyə bilmirsinizsə, yuxarıda təsvir olunan vəziyyətlə qarşılaşmamaq üçün bütün xətaları (öncə "təhlükəli" olanları) düzgün şəkildə yoxladığınızdan əmin olun.
Necə düzəltmək olar
- github.com/golang-jwt/jwt/v44.5.1 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| github.com/golang-jwt/jwt/v4Go | v < 4.5.1 | 4.5.1 |
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.