W bibliotece Gofiber Utils w wersjach 2.0.0-rc.3 i wcześniejszych funkcje generowania UUID po cichu przełączają się na przewidywalne wartości, gdy systemowy generator liczb losowych (crypto/rand) zawiedzie. Atakujący może przewidzieć lub odgadnąć generowane identyfikatory, kompromitując bezpieczeństwo aplikacji korzystających z nich w operacjach wymagających kryptograficznej losowości.
▸ Pokaż oryginał (EN)
Fiber Utils is a collection of common functions created for Fiber. In versions 2.0.0-rc.3 and below, when the system's cryptographic random number generator (crypto/rand) fails, both functions silently fall back to returning predictable UUID values, including the zero UUID "00000000-0000-0000-0000-000000000000". The vulnerability occurs through two related but distinct failure paths, both ultimately caused by crypto/rand.Read() failures, compromising the security of all Fiber applications using these functions for security-critical operations. This issue is fixed in version 2.0.0-rc.4.
Gdy wywołanie crypto/rand.Read() zakończy się błędem, obie funkcje generowania UUID nie sygnalizują tego błędu wywołującemu kodowi (CWE-252 — unchecked return value), lecz milcząco powracają do tworzenia przewidywalnych wartości UUID. Źródłem zastępczej losowości jest słaby lub deterministyczny generator (CWE-338 — użycie kryptograficznie słabego PRNG), a brak wystarczającej entropii (CWE-331) prowadzi w skrajnym przypadku do zwrócenia UUID zerowego '00000000-0000-0000-0000-000000000000'. Problem występuje przez dwie odrębne ścieżki awarii, których wspólnym źródłem jest niepowodzenie crypto/rand.Read().
Atakujący może przewidzieć lub w sposób powtarzalny odtworzyć generowane UUID, co umożliwia obejście mechanizmów uwierzytelniania, autoryzacji lub ochrony sesji we wszystkich aplikacjach Fiber używających tych funkcji do operacji bezpieczeństwa. Skutkuje to wysoką utratą poufności i integralności danych aplikacji.
Należy zaktualizować bibliotekę Gofiber Utils do wersji 2.0.0-rc.4, w której problem został naprawiony. Szczegóły patcha dostępne w repozytorium projektu pod wskazanym commitem oraz w security advisory GHSA-m98w-cqp3-qcqr.
Gofiber Utils w wersjach 2.0.0-rc.3 i wcześniejszych
Podatność naprawiona w wersji 2.0.0-rc.4 zgodnie z security advisory GHSA-m98w-cqp3-qcqr opublikowanym przez autorów projektu na GitHub.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XGofiber Utils
APPGofiber2.0.0≤ 1.2.0
Powiązane podatności
Przewidywalne UUID w Fiber v2 — podatność na generowanie słabych identyfikatorów
Session Fixation w middleware sesji GoFiber Fiber (wersje < 2.52.5)
Gofiber Fiber: Niebezpieczna konfiguracja CORS middleware (wildcard + credentials)
XSS w silniku szablonów Django dla Gofiber/template (brak autoescape)
Fiber is an express inspired web framework written in Go. A Cross-Site Request Forgery (CSRF) vulnerability ha...