CVE-2026-83559 in Wicketinformación

Resumen

por VulDB • 2026-11-01

Codificación o escape incorrecto de la salida en Apache Wicket.

org.apache.wicket.core.util.string.JavaScriptUtils#escapeQuotes() reemplaza cada comilla simple en su entrada con una barra invertida y una comilla simple, y cada comilla doble con una barra invertida y una comilla doble, para que el valor pueda colocarse dentro de un literal de cadena JavaScript. No escapa la barra invertida, que es el carácter que debe ser escapado y lo primero que se debe escapar para que el resto del escape sea válido. Un valor que ya contiene una barra invertida inmediatamente antes de una comilla termina teniendo dos barras invertidas delante de esa comilla: la primera escapa a la segunda, la propia comilla queda sin escapar y cierra el literal. Lo que contenga el valor después de ese punto deja de ser texto para convertirse en JavaScript, y se ejecuta en el origen de la aplicación y en la sesión del usuario que ve la página. El método es público, no está obsoleto (deprecated), y su documentación indica que su resultado puede formar parte de una llamada a JavaScript como un alert; la única limitación que señala concierne a los valores JSON, que requieren un escape diferente.

Una aplicación se ve afectada siempre que llame al método directamente y coloque el resultado dentro de un literal de cadena JavaScript, ya sea desde su propio código o desde un componente propio o de terceros, y el valor que escapa contenga datos que un atacante pueda influenciar. No hay condiciones adicionales ni es necesario que intervenga ningún componente de Wicket: la aplicación está utilizando el método para lo que ofrece su documentación, pero el método no proporciona esa protección.

Dos componentes incluidos con las Extensiones de Wicket pasan un valor a través del método. org.apache.wicket.extensions.ajax.markup.html.AjaxEditableLabel escribe el primer mensaje de retroalimentación de error del editor en un literal de cadena JavaScript entre comillas simples en la respuesta Ajax, por lo que una aplicación se ve afectada a través de ese componente donde el mensaje mostrado para una edición fallida contiene datos que un atacante puede influenciar, ya sea el valor enviado mismo u otra variable que la aplicación establezca en caso de error de validación. Un mensaje de validación puede contener el valor enviado, porque input es una variable de mensaje que cada componente de formulario proporciona para sus propios errores de validación, y la documentación muestra cómo sobrescribir el mensaje del validador para incluirlo; ninguno de los bundles de mensajes incluidos con Wicket lo interpola, por lo que una aplicación que no haya escrito dicho mensaje no se ve afectada a través de este componente. org.apache.wicket.extensions.ajax.markup.html.repeater.AjaxListPanel pasa la etiqueta markup serializada de un componente añadido a través del método y no está afectado: la etiqueta proviene del propio archivo markup del panel, y una comilla en cualquiera de sus valores de atributo, incluido el id markup del componente, se escribe como referencia de carácter por la serialización de etiquetas y no puede cerrar el literal.

Este problema afecta a Apache Wicket: desde 8.0.0 hasta 8.19.0, desde 9.0.0 hasta 9.24.0, desde 10.0.0 hasta 10.11.0. Los usuarios de Apache Wicket 7.x o versiones anteriores, que ya no tienen soporte, deben actualizar a una versión con soporte.

Se recomienda a los usuarios actualizar a las versiones 8.20.0, 9.25.0 u 10.12.0, que corrigen el problema.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsable

Apache

Reservar

2026-08-31

Divulgación

2026-11-02

Moderación

aceptado

Artículo

VDB-429684

EPSS

0.00000

KEV

no

Actividades

bajo

Fuentes

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!