CVE-2024-51744
Açıklama
golang-jwt, JSON Web Token'ların bir Go uygulamasıdır. `ParseWithClaims` fonksiyonundaki hata davranışına ilişkin belgelerin belirsiz olması, kullanıcıların hataları potansiyel olarak kontrol etmeleri gereken şekilde kontrol etmedikleri durumlara yol açabilir. Özellikle, bir token hem süresi dolmuş hem de geçersizse, `ParseWithClaims` tarafından döndürülen hatalar her iki hata kodunu da içerir. Kullanıcılar `error.Is` kullanarak yalnızca `jwt.ErrTokenExpired` hatasını kontrol ederlerse, gömülü olan `jwt.ErrTokenSignatureInvalid` hatasını görmezden gelecekler ve böylece potansiyel olarak geçersiz token'ları kabul edeceklerdir. Hata yönetimi mantığıyla ilgili düzeltme, `v5` dalından `v4` dalına geri port edilmiştir. Bu mantıkta, `ParseWithClaims` fonksiyonu "tehlikeli" durumlarda (örneğin, geçersiz bir imza) hemen geri dönecek ve birleşik hataları yalnızca imzanın geçerli olduğu ancak daha fazla doğrulamanın başarısız olduğu durumlarla sınırlayacaktır (örneğin, imza geçerliyse ancak süresi dolmuşsa VE yanlış hedef kitleye sahipse). Bu düzeltme, 4.5.1 sürümünün bir parçasıdır. Bunun yerleşmiş bir fonksiyonun davranışını değiştirdiğinin ve %100 geriye dönük uyumlu olmadığının farkındayız, bu nedenle 4.5.1 sürümüne güncellemek kodunuzu bozabilir. 4.5.0 sürümüne güncelleyemediğiniz durumda, yukarıda detaylandırılan durumla karşılaşmamak için lütfen tüm hataları (önce "tehlikeli" olanları) uygun şekilde kontrol ettiğinizden emin olun.
Nasıl düzeltilir
- github.com/golang-jwt/jwt/v44.5.1 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| github.com/golang-jwt/jwt/v4Go | v < 4.5.1 | 4.5.1 |
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.