Framework Gofiber Fiber w wersjach przed 2.52.1 zawiera podatność w middleware CORS, która umożliwia jednoczesne ustawienie nagłówka Access-Control-Allow-Origin na wartość wildcard (*) oraz Access-Control-Allow-Credentials na true. Taka konfiguracja jest sprzeczna z zalecanymi praktykami bezpieczeństwa i może prowadzić do nieautoryzowanego dostępu do wrażliwych danych użytkowników.
▸ Pokaż oryginał (EN)
Fiber is a web framework written in go. Prior to version 2.52.1, the CORS middleware allows for insecure configurations that could potentially expose the application to multiple CORS-related vulnerabilities. Specifically, it allows setting the Access-Control-Allow-Origin header to a wildcard (`*`) while also having the Access-Control-Allow-Credentials set to true, which goes against recommended security best practices. The impact of this misconfiguration is high as it can lead to unauthorized access to sensitive user data and expose the system to various types of attacks listed in the PortSwigger article linked in the references. Version 2.52.1 contains a patch for this issue. As a workaround, users may manually validate the CORS configurations in their implementation to ensure that they do not allow a wildcard origin when credentials are enabled. The browser fetch api, as well as browsers and utilities that enforce CORS policies, are not affected by this.
Middleware CORS w Gofiber Fiber nie blokuje ani nie ostrzega przed niebezpieczną kombinacją ustawień: jednoczesnym użyciem wildcard (*) jako dozwolonego źródła (origin) oraz włączonymi poświadczeniami (credentials). Zgodnie ze specyfikacją CORS, przeglądarka powinna odrzucać takie odpowiedzi, jednak aplikacje i narzędzia nieegzekwujące polityki CORS mogą tę kombinację akceptować. Pozwala to atakującemu na tworzenie złośliwych stron, które wykonują uwierzytelnione żądania cross-origin do podatnej aplikacji i odczytują chronione zasoby.
Atakujący może uzyskać nieautoryzowany dostęp do wrażliwych danych sesji użytkownika, wykonywać uwierzytelnione żądania w jego imieniu z dowolnej domeny oraz przeprowadzać ataki opisane w kontekście exploitacji błędnych konfiguracji CORS (m.in. kradzież tokenów, danych osobowych i innych zasobów chronionych uwierzytelnieniem).
Należy zaktualizować Gofiber Fiber do wersji 2.52.1, która zawiera patch dla tego problemu. Jako obejście (workaround) należy ręcznie zweryfikować konfigurację CORS i upewnić się, że wildcard (*) jako dozwolone źródło nie jest używany jednocześnie z włączonymi poświadczeniami (credentials). Zamiast wildcard należy jawnie wskazać zaufane domeny.
Gofiber Fiber w wersjach przed 2.52.1 z włączonym middleware CORS skonfigurowanym z jednoczesnym użyciem wildcard origin (*) i Access-Control-Allow-Credentials: true
Podatność dotyczy wyłącznie konfiguracji server-side — przeglądarki oraz narzędzia egzekwujące politykę CORS (w tym przeglądarkowe fetch API) są zabezpieczone po stronie klienta, jednak inne klienty HTTP nieegzekwujące tej polityki pozostają narażone.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:LGofiber Fiber
APPGofiber< 2.52.1
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)
Fiber is an express inspired web framework written in Go. A Cross-Site Request Forgery (CSRF) vulnerability ha...
Fiber is an Express inspired web framework written in Go. A Path Traversal (CWE-22) vulnerability in Fiber all...
Fiber is an Express inspired web framework written in Go. In versions on the v3 branch prior to 3.1.0, the use...