CVE-2026-122231 Cross-site scripting (XSS) almacenado en WS Form LITE vía valor de array en campo de texto
El plugin WS Form LITE para WordPress es vulnerable a XSS almacenado por el parámetro 'field_id[0][0]' en todas las versiones hasta la 1.12.18, por sanitización y escape de salida insuficientes. El helper esc_html() del lado del cliente devuelve valores no string sin cambios, permitiendo que un payload de array anidado llegue sin escapar a jQuery .append(); atacantes no autenticados pueden inyectar scripts web arbitrarios.
CVSS 3.1
- Probabilidad de explotación · EPSS del 09/110,5 % · percentil 39
- Explotada activamenteNo confirmada
- Exploit públicoNo conocido
Afectados
westguard WS Form LITE – Drag & Drop Contact Form Builder
hasta 1.12.18
Qué hacer
- Verificá si usás WS Form LITE – Drag & Drop Contact Form Builder y en qué versión.
- Actualizá a la versión corregida que indique el fabricante en su aviso o aplicá su mitigación.
- Revisá registros y accesos de los sistemas expuestos para descartar un uso previo.
Calculadora CVSS
CVSS 3.1 · 7.2 ALTA
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
- Vector de ataqueRed
- Complejidad del ataqueBaja
- Privilegios requeridosNinguno
- Interacción del usuarioNinguna
- AlcanceCambiado
- ConfidencialidadBaja
- IntegridadBaja
- DisponibilidadNinguna
Descripción original
The WS Form LITE – Drag & Drop Contact Form Builder plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'field_<id>[0][0]' parameter in all versions up to, and including, 1.12.18 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This is possible because the client-side esc_html() helper returns any non-string value unchanged, allowing a nested-array payload coerced via Array.prototype.toString to reach jQuery .append() unescaped.
Referencias (10)
- www.wordfence.com/threat-intel/vulnerabilities/id/7996ce73-32d7-49d5-b47b-71f9fc106d3d?so…
- plugins.trac.wordpress.org/browser/ws-form/tags/1.12.17/shared/js/ws-form.js#L1580
- plugins.trac.wordpress.org/browser/ws-form/tags/1.12.17/shared/js/ws-form.js#L1310
- plugins.trac.wordpress.org/browser/ws-form/tags/1.12.17/shared/js/ws-form.js#L560
- plugins.trac.wordpress.org/browser/ws-form/tags/1.12.17/includes/core/class-ws-form-submi…
- plugins.trac.wordpress.org/browser/ws-form/tags/1.12.17/includes/core/class-ws-form-submi…
- plugins.trac.wordpress.org/browser/ws-form/tags/1.12.17/api/class-ws-form-api-submit.php#…
- plugins.trac.wordpress.org/browser/ws-form/tags/1.12.17/api/class-ws-form-api.php#L344
- plugins.trac.wordpress.org/changeset/3784929/ws-form
- plugins.trac.wordpress.org/changeset/3784929/ws-form/trunk/shared/js/ws-form.js
Resumen traducido automáticamente de la descripción original. Fuente: Nureq Monitor. Cómo funciona.