CVE-2026-82705
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
Brak autoryzacji w Apache Wicket.
org.apache.wicket.authorization.IAuthorizationStrategy deklaruje funkcję isResourceAuthorized(), a metoda ta ma pojedynczy punkt egzekwowania w strukturze: org.apache.wicket.request.handler.resource.ResourceRequestHandler, procedura obsługi obsługująca zasób osiągany poprzez zamontowany lub współdzielony ResourceReference. Komponenty, które otrzymują instancję org.apache.wicket.request.resource.IResource, zamiast tego same wywołują funkcję IResource#respond() z własnego detektora żądań i nigdy nie konstruują tej procedury obsługi. W wicket-core są to org.apache.wicket.markup.html.link.ResourceLink, org.apache.wicket.markup.html.image.Image i org.apache.wicket.markup.html.form.ImageButton; w rozszerzeniach wicket jest to org.apache.wicket.extensions.ajax.AjaxDownloadBehavior. Zasób ograniczony przez niestandardową implementację isResourceAuthorized() lub przez adnotację @AuthorizeResource z wicket-auth-roles jest zatem wymuszany, gdy jest żądany za pośrednictwem własnego adresu URL zasobu i nie jest wymuszany, gdy ta sama instancja jest obsługiwana przez komponent, który go przechowuje.
O tym, które z nich nastąpi, decyduje konstruktor, z którego korzysta aplikacja, a nie cokolwiek, co aplikacja może zobaczyć na renderowanej stronie. ResourceLink(String, ResourceReference) renderuje adres URL zasobu, a żądanie jest autoryzowane; ResourceLink(String, IResource) renderuje adres URL odbiornika komponentu, ale tak nie jest. Image, ImageButton i AjaxDownloadBehavior oferują tę samą parę konstruktorów i zachowują się w ten sam sposób. Image i ImageButton zapisują adres URL odbiornika w atrybucie src renderowanego przez siebie znacznika, więc przeglądarka żąda go bez żadnej akcji ze strony użytkownika, a zasób obsługiwany przez Image może również pochodzić z modelu komponentu.
Aplikacja ma na to wpływ, gdy ogranicza zasób za pomocą IAuthorizationStrategy#isResourceAuthorized() lub adnotacji @AuthorizeResource, a następnie przekazuje ten sam zasób do jednego z tych komponentów jako IResource. Nie ma to wpływu na aplikację, która w ogóle nie ogranicza zasobów, ani na zasób, który jest jedynie podłączony lub zarejestrowany jako zasób współdzielony. Wzorzec nie musi być napisany przez samą aplikację: org.apache.wicket.extensions.markup.html.repeater.data.table.export.ExportToolbar buduje każde ze swoich łączy eksportowych z instancji IResource, więc wyeksportowana zawartość tabeli danych jest udostępniana bez sprawdzania zasobów w dowolnej aplikacji, która dodaje ten pasek narzędzi.
Aby obejść ten problem, zarejestruj zasób we współużytkowanych zasobach aplikacji i przekaż wynikowy ResourceReference do komponentu zamiast do IResource, tak aby żądanie było kierowane przez procedurę obsługi, która konsultuje strategię autoryzacji.
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. 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