Spring Security w wersjach 5.7 przed 5.7.5 oraz 5.6 przed 5.6.9 zawiera podatność umożliwiającą obejście reguł autoryzacji poprzez typy dispatcherów forward lub include. Podatność jest krytyczna, ponieważ nieuwierzytelniony atakujący sieciowy może uzyskać dostęp do zasobów chronionych wyższymi uprawnieniami.
▸ Pokaż oryginał (EN)
Spring Security, versions 5.7 prior to 5.7.5 and 5.6 prior to 5.6.9 could be susceptible to authorization rules bypass via forward or include dispatcher types. Specifically, an application is vulnerable when all of the following are true: The application expects that Spring Security applies security to forward and include dispatcher types. The application uses the AuthorizationFilter either manually or via the authorizeHttpRequests() method. The application configures the FilterChainProxy to apply to forward and/or include requests (e.g. spring.security.filter.dispatcher-types = request, error, async, forward, include). The application may forward or include the request to a higher privilege-secured endpoint.The application configures Spring Security to apply to every dispatcher type via authorizeHttpRequests().shouldFilterAllDispatcherTypes(true)
Podatność polega na tym, że AuthorizationFilter nie stosuje poprawnie skonfigurowanych reguł bezpieczeństwa w przypadku żądań przekazywanych przez mechanizmy forward lub include. Aby aplikacja była podatna, muszą jednocześnie zachodzić następujące warunki: aplikacja używa AuthorizationFilter (ręcznie lub przez metodę authorizeHttpRequests()), FilterChainProxy jest skonfigurowany do obsługi dispatcherów forward i/lub include, a aplikacja może przekazywać żądania do endpointów chronionych wyższymi uprawnieniami. W takim scenariuszu atakujący może, za pomocą odpowiednio spreparowanego żądania wywołującego mechanizm forward lub include, ominąć skonfigurowane reguły autoryzacji i dotrzeć do zasobów, do których nie powinien mieć dostępu.
Atakujący może uzyskać nieautoryzowany dostęp do endpointów wymagających wyższych uprawnień, co potencjalnie prowadzi do ujawnienia poufnych danych, modyfikacji zasobów lub eskalacji uprawnień w aplikacji.
Należy zaktualizować Spring Security do wersji 5.7.5 lub nowszej (dla gałęzi 5.7) albo do wersji 5.6.9 lub nowszej (dla gałęzi 5.6). W przypadku NetApp Active IQ Unified Manager należy zastosować patche dostępne u producenta zgodnie z referencjami. Jako obejście tymczasowe można unikać konfigurowania FilterChainProxy do obsługi dispatcherów forward i include lub nie używać metody shouldFilterAllDispatcherTypes(true) do momentu wdrożenia patcha.
VMware Spring Security w wersji 5.7.x przed 5.7.5 oraz w wersji 5.6.x przed 5.6.9; a także NetApp Active IQ Unified Manager (wersje wskazane w referencjach producenta)
Podatność wymaga spełnienia kilku jednoczesnych warunków konfiguracyjnych po stronie aplikacji, co nieznacznie ogranicza powierzchnię ataku, jednak krytyczny wynik CVSS 9.8 wynika z braku wymagań co do uwierzytelnienia i interakcji użytkownika.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HNetapp Active Iq Unified Manager
APPNetappwszystkie wersjeVMware Spring Security
APPVmware5.6.0 – 5.6.9 (bez)5.7.0 – 5.7.5 (bez)
Powiązane podatności
Apache Log4j2 Log4Shell — RCE przez podatną funkcję JNDI lookup
In versions of Spring Security's OAuth2 Authorization Server module 7.0.0 through 7.0.4, when Dynamic Client R...
Spring Security's embedded UnboundID LDAP server (UnboundIdContainer) unconditionally registers an administrat...
VMware Spring Security — brak zapisu nagłówków HTTP odpowiedzi
Buffer overflow w GNOME GLib — błąd off-by-one w obsłudze SOCKS4