Średni Odebrany

CVE-2026-84177

opublikowano:
modyfikacja:
Ocena CVSS
6.3
Średni · v4.0
wektor: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/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:X

>_ Opis

Tłumaczenie automatyczne – może zawierać nieścisłości.

Nieprawidłowa kolejność zachowań w Apache Wicket: ścieżka pliku jest sprawdzana, zanim struktura dołączy atrybuty ją uzupełniające.

org.apache.wicket.request.resource.PackageResource pyta skonfigurowanego strażnika zasobów pakietu o ścieżkę zbudowaną z pakietu klasy zakresu i nazwę pliku w adresie URL żądania, a następnie przekazuje tę samą ścieżkę do lokalizatora strumienia zasobów wraz ze stylem, odmianą i ustawieniami regionalnymi. Te trzy atrybuty są dekodowane na podstawie nazwy pierwszego parametru zapytania i nigdy nie pojawiają się w ciągu znaków otrzymanym od strażnika. org.apache.wicket.core.util.resource.locator.ResourceNameIterator dołącza je do tej ścieżki, każda poprzedzona znakiem podkreślenia, w kolejności odmiana, styl, ustawienia regionalne, przed rozszerzeniem pliku, więc otwierany plik nie jest plikiem zatwierdzonym przez strażnika.

org.apache.wicket.markup.html.PackageResourceGuard decyduje, czy plik HTML jest szablonem znaczników komponentu, szukając obok niego pliku klasy o tej samej nazwie, usuwając po kolei jeden sufiks rozdzielany podkreśleniami. HTML znajduje się na domyślnej liście dozwolonych, więc sprawdzenie jest jedyną rzeczą oddzielającą statyczny plik HTML, który może zostać wyświetlony, od szablonu znaczników, który nie może. Zapytany o nazwę szablonu, strażnik poprawnie odmawia. Zapytany o krótszą nazwę, dla której nie istnieje żadna klasa, akceptuje, a styl podany w adresie URL uzupełnia tę nazwę w szablonie znaczników klasy komponentu, który jest zapisywany w odpowiedzi.

Aplikacja ma wpływ, jeśli prosta nazwa którejkolwiek z jej klas komponentów zawiera podkreślenie i żadna krótsza część tej nazwy sama w sobie nie jest klasą, np. Report_v2 lub Wizard_Step1; nie ma to wpływu na aplikację bez takiej nazwy klasy. Nie jest wymagane żadne nietypowe wdrożenie, pakowanie ani konfiguracja, a uruchomienie w trybie wdrażania, a nie programowania, nie zapobiega temu. Konwencje nazewnictwa Java nie zalecają stosowania podkreśleń w nazwach klas, a żaden moduł Wicket ich nie posiada, więc nie są ujawniane żadne znaczniki frameworka; to, co aplikacja udostępnia w ten sposób, jest jej własne. Komponent, którego nazwa klasy nie ma podkreślenia, jest nieosiągalny, podobnie jak jego zlokalizowane lub stylizowane znaczniki, ponieważ strażnik znajduje plik klasy pod nazwą bazową i odrzuca żądanie. Atrybuty nie mogą zmienić rozszerzenia pliku i nie mogą opuścić pakietu komponentu, więc nie można uzyskać dostępu do niczego poza plikami HTML w tym pakiecie. Dostęp jest tylko do odczytu i ujawniana jest zawartość szablonu autorstwa programisty: struktura komponentów, komentarze programisty, znaczniki renderowane tylko pod pewnymi warunkami, skrypt wbudowany i punkty końcowe oraz nazwy szablonów. W ten sposób nie można uzyskać dostępu do żadnych danych użytkownika, danych uwierzytelniających ani materiałów sesyjnych. Osoba atakująca musi nazwać klasę w pakiecie docelowym i samym komponencie, a Wicket zapisuje w pełni kwalifikowane nazwy klas w adresie URL każdego renderowanego zasobu pakietu.

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żytkownicy Apache Wicket 7.x lub starszego, które nie są już obsługiwane, powinni dokonać aktualizacji do obsługiwanej wersji. 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