Wysoki Odebrany

CVE-2026-95863

opublikowano:
modyfikacja:
Ocena CVSS
7.6
Wysoki · v4.0
wektor: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/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.

Niewłaściwa neutralizacja danych wejściowych podczas generowania strony internetowej w Apache Wicket.

Apache Wicket generuje kod JavaScript odnoszący się do renderowanych elementów oraz
zapisuje w tym JavaScript dwie wartości, które sam wyprowadza: znacznik komponentu
id oraz nazwę wejściową komponentu formularza, która jest zbudowana na podstawie identyfikatorów komponentów.
Obydwa są umieszczone w literałach ciągów JavaScript ujętych w pojedyncze cudzysłowy, bez bycia
escaped dla tego kontekstu, a więc wartość zawierająca pojedynczy cudzysłów lub ukośnik odwrotny
kończy dosłowność, a to, co następuje, jest analizowane jako skrypt i uruchamiane w pliku
pochodzenie aplikacji podczas ładowania strony.

Identyfikator znaczników to wartość przekazywana do org.apache.wicket.Component#setMarkupId(String),
lub atrybut id zapisany w znacznikach komponentu, lub id Wicket
generuje, w tej kolejności. Pierwsze dwa są dostarczane przez aplikację w formacie
Kontekst HTML, w którym oba znaki są dozwolone i gdzie Wicket je unika
poprawnie, gdy zapisuje tę samą wartość w atrybucie id elementu; a
wygenerowany identyfikator nie może zawierać żadnego z nich. Nazwa wejściowa pochodzi z identyfikatorów
komponentów pomiędzy formularzem a komponentem formularza, a identyfikator komponentu wynosił
odrzucone tylko dla „:” i „~”.

W org.apache.wicket:wicket-core w wersjach 9.x i 10.x,
org.apache.wicket.markup.head.OnEventHeaderItem#forMarkupId(String, String,
CharSequence) cytuje identyfikator podany w wywołaniu Wicket.Event.add i
Przechodzą przez nią elementy zarówno rdzenia furtki, jak i przedłużeń furtki
#forComponent(Komponent, ciąg znaków, sekwencja znaków). W każdej wersji, której dotyczy problem,
org.apache.wicket.markup.html.form.Form zapisuje swój identyfikator znacznika i identyfikator
kontener z ukrytymi polami na takie literały,
org.apache.wicket.markup.html.form.FormComponentUpdatingBehavior zapisuje dane wejściowe
name, a org.apache.wicket.markup.html.form.upload.MultiFileUploadField zapisuje
dwa identyfikatory znaczników i nazwa wejściowa. W wersji 8.x Form zapisuje również nazwę wejściową do pliku
działanie łącza przesyłającego oraz w wersjach 8.x i 9.x Form#appendDefaultButtonField
zapisuje nazwę wejściową do atrybutu name bez ucieczki, a więc wartość
zawierający podwójny cudzysłów powoduje ucieczkę atrybutu do znaczników.

Dotyczy to org.apache.wicket:wicket-extensions samo w sobie i nie tylko
poprzez rdzeń furtki: AjaxEditableLabel, AjaxIndicatorAppender,
AjaxDisableComponentListener, UploadProgressBar, KittenCaptchaPanel, Paleta,
FilterForm, a w wersjach 9.x i 10.x, TrapFocusBehavior i AjaxListPanel, każda kompilacja
własny JavaScript zawierający identyfikator znacznika.

Aplikacja ma wpływ, gdy identyfikator znacznika lub identyfikator komponentu zawiera jeden z nich
te postacie. Wicket sam go tam nie umieszcza, więc wartość pochodzi z
aplikacja: identyfikator ustawiony na komponencie, atrybut id w szablonie lub a
identyfikator komponentu uzyskany na podstawie danych. Żaden z nich nie jest kontekstem JavaScript z pliku
punktu widzenia aplikacji.

Polityka bezpieczeństwa treści wysyłana domyślnie przez Apache Wicket 9.x i 10.x nie działa
nie zapobiegać temu. Wygenerowany skrypt jest zapisywany w elemencie skryptu przenoszącym
wartość jednorazowa na odpowiedź, więc wstrzyknięty kod jest częścią skryptu polityki
przyznaje.

Naprawione wersje sprawdzają identyfikator tam, gdzie wchodzi, zamiast uciekać z każdego miejsca
jest napisane. Identyfikator komponentu i identyfikator znacznika nie mogą już zawierać cudzysłowu, a
cudzysłów, ukośnik odwrotny, nawiasy klamrowe, nawiasy ostrokątne, średnik, ampersand lub a
znak kontrolny, a identyfikator znacznika nie może zawierać nawiasów ani kwadratów
nawiasy; komponent skonstruowany z takim identyfikatorem lub z takim znacznikiem
id, kończy się niepowodzeniem z wyjątkiem.

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órzy
nie są już obsługiwane, należy dokonać aktualizacji do obsługiwanej wersji. Użytkownicy są
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