CVE-2026-83559 in Wicket
Zusammenfassung
von VulDB • 02.11.2026
Unzulässige Kodierung oder Maskierung von Ausgaben in Apache Wicket.
org.apache.wicket.core.util.string.JavaScriptUtils#escapeQuotes() ersetzt jedes einzelne Anführungszeichen im Eingabewert durch einen Backslash und ein einzelnes Anführungszeichen sowie jedes doppelte Anführungszeichen durch einen Backslash und ein doppeltes Anführungszeichen, damit der Wert in einem JavaScript-Zeichenliteral platziert werden kann. Dabei wird jedoch nicht der Backslash maskiert, welches das Zeichen ist, das tatsächlich maskiert werden muss und zuerst maskiert werden sollte, damit die restliche Maskierung wirksam bleibt. Ein Wert, der bereits einen Backslash unmittelbar vor einem Anführungszeichen enthält, führt daher dazu, dass zwei Backslashes vor diesem Anführungszeichen stehen: Der erste maskiert den zweiten, während das Anführungszeichen selbst nicht maskiert wird und somit das Literal schließt. Alles, was nach diesem Punkt im Wert enthalten ist, ist kein Text mehr, sondern JavaScript-Code, der im Ursprungsbereich (Origin) der Anwendung und in der Sitzung des Benutzers ausgeführt wird, der die Seite aufruft. Die Methode ist öffentlich, nicht veraltet, und ihre Dokumentation besagt, dass ihr Ergebnis Teil eines JavaScript-Aufrufs wie einer alert()-Funktion sein kann; die einzige Einschränkung betrifft JSON-Werte, für die eine andere Maskierung erforderlich ist.
Eine Anwendung ist betroffen, wo immer sie diese Methode selbst aufruft und das Ergebnis in ein JavaScript-Zeichenliteral platziert, sei es aus eigenem Code oder von einer Komponente der eigenen oder einer Drittanbieter-Anwendung, und der zu maskierende Wert Daten enthält, die ein Angreifer beeinflussen kann. Es gibt keine weiteren Bedingungen, und keine Wicket-Komponente muss beteiligt sein: Die Anwendung nutzt die Methode so, wie sie in ihrer Dokumentation angeboten wird, aber die Methode liefert den gewünschten Schutz nicht.
Zwei Komponenten, die mit Wicket Extensions ausgeliefert werden, leiten einen Wert durch diese Methode weiter. org.apache.wicket.extensions.ajax.markup.html.AjaxEditableLabel schreibt die erste Fehlermeldung des Editors in ein einzelnes Anführungszeichen umschließendes JavaScript-Zeichenliteral in der Ajax-Antwort; daher ist eine Anwendung über diese Komponente betroffen, wenn die für einen fehlgeschlagenen Bearbeitungsversuch angezeigte Nachricht Daten enthält, die ein Angreifer beeinflussen kann, sei es der eingereichte Wert selbst oder eine andere Variable, die die Anwendung bei einem Validierungsfehler festlegt. Eine Validierungsnachricht kann den eingereichten Wert enthalten, da Eingaben eine Nachrichtenvariable sind, die jede Formularkomponente für ihre eigenen Validierungsfehler bereitstellt, und die Dokumentation zeigt das Überschreiben der Nachricht eines Validators zur Einbindung dieses Werts; keine der mit Wicket ausgelieferten Nachschlagetabellen (Message Bundles) interpoliert diesen Wert, sodass eine Anwendung, die keine solche Nachricht geschrieben hat, über diese Komponente nicht betroffen ist. org.apache.wicket.extensions.ajax.markup.html.repeater.AjaxListPanel leitet das serialisierte Markup-Tag einer angehängten Komponente durch die Methode weiter und ist nicht betroffen: Das Tag stammt aus der eigenen Markupdatei des Panels, und ein Anführungszeichen in einem seiner Attributwerte, einschließlich der markup id der Komponente, wird als Zeichenreferenz durch die Tag-Serialisierung geschrieben und kann das Literal nicht schließen.
Dieses Problem betrifft Apache Wicket: von 8.0.0 bis 8.19.0, von 9.0.0 bis 9.24.0, von 10.0.0 bis 10.11.0. Benutzer von Apache Wicket 7.x oder älter, die nicht mehr unterstützt werden, sollten auf eine unterstützte Version aktualisieren.
Es wird empfohlen, auf die Versionen 8.20.0, 9.25.0 oder 10.12.0 zu aktualisieren, welche das Problem beheben.
VulDB is the best source for vulnerability data and more expert information about this specific topic.