CVE-2026-82115
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
Brak autoryzacji w Apache Wicket.
org.apache.wicket.protocol.ws.api.WebSocketMessageBroadcastHandler, moduł obsługi żądań, którego natywna obsługa protokołu WebSocket firmy Wicket używa do dostarczania przychodzącej ramki, rozpoznaje współdzielony zasób nazwany na podstawie parametru uzgadniania klienta i wywołuje bezpośrednio na nim funkcję WebSocketResource#onPayload() bez konsultacji z IAuthorizationStrategy#isResourceAuthorized(). Ta metoda ma jeden punkt wymuszania w strukturze, org.apache.wicket.request.handler.resource.ResourceRequestHandler, przez który nie przechodzi transport WebSocket, a funkcja WebSocketResource#respond() jest ostateczna i pusta. Dlatego żadna trasa do WebSocketResource nie pyta skonfigurowanej strategii autoryzacji, czy osoba wywołująca może z niej korzystać, a adnotacja @AuthorizeResource w takiej klasie nie ma żadnego wpływu.
Osoba wywołująca potrzebuje powiązanej sesji Wicket i nazwy zasobu. Nazwa nie jest tajemnicą: Wicket zapisuje ją na stronie otwierającej połączenie. Żadna strona aplikacji nie jest w inny sposób zaangażowana, ponieważ żądanie nadania nazwy zasobowi jest obsługiwane ze stroną jednorazową. W ten sposób osiągane są wszystkie wywołania zwrotne zasobu, w tym przeciążenia onConnect() i obu onMessage(), a to, co wywołanie zwrotne przesyła z powrotem przez WebSocketRequestHandler, trafia do własnego połączenia wywołującego.
Aplikacja ma na to wpływ, gdy rejestruje zasób WebSocketResource jako zasób udostępniony i opiera się na strategii autoryzacji, aby go ograniczyć. Osoba dzwoniąca zyskuje to, co wywołania zwrotne tego zasobu zrobią z wybranym przez dzwoniącego komunikatem tekstowym lub binarnym. Połączenie jest rejestrowane w sesji własnej dzwoniącego, więc nie daje dostępu do połączenia innego użytkownika.
Aby obejść ten problem, odrzuć nieautoryzowane połączenia z filtrem IWebSocketConnectionFilter zarejestrowanym za pomocą WebSocketSettings#setConnectionFilter() lub powtórz sprawdzanie autoryzacji na początku każdego wywołania zwrotnego.
Ten problem dotyczy Apache Wicket: od 8.0.0 do 8.19.0, od 9.0.0 do 9.24.0, od 10.0.0 do 10.11.0. Dotyczy to również starszych, nieobsługiwanych wersji, począwszy od wersji 7.0.0. Użytkownikom zaleca się aktualizację do wersji 8.20.0, 9.25.0 lub 10.12.0, która rozwiązuje problem.
>_ Słabości (CWE)
>_ Referencje
Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.
This product uses the NVD API but is not endorsed or certified by the NVD.
Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.
CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.
NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org