Descripción
Cronicle es un programador y ejecutor de tareas multiservidor con una interfaz de usuario web. En versiones anteriores a 0.9.119, el registro de actividad (Activity Log) del administrador en htdocs/js/pages/admin/Activity.js concatena el valor item.user.full_name, controlado por el atacante, en el HTML sin aplicar encode_entities e inserta el resultado mediante this.div.html. El filtro de entrada incluido en pixl-server-user puede omitirse mediante una etiqueta que contenga un salto de línea, ya que su expresión regular no coincide con saltos de línea. Un usuario autenticado sin privilegios de administrador puede actualizar su propio nombre a través de /api/user/update usando una sesión válida y su contraseña actual; cuando free_accounts está habilitado, un atacante anónimo puede, en cambio, introducir el nombre durante el autorregistro. El nombre almacenado ejecuta scripts en la sesión de un administrador cuando se abre el registro de actividad, lo que permite tomar el control de la cuenta de administrador y, posteriormente, ejecutar comandos mediante funciones privilegiadas de Cronicle. Este problema está corregido en la versión 0.9.119.
Qué hacer
Revisa si usas el producto afectado y en qué versión, y aplica la actualización o la mitigación que indique el aviso del fabricante. CISA no ha confirmado que se esté explotando; si eso cambia, esta ficha pasa a «explotada» y te avisamos en el boletín.
Versiones afectadas
- Cronicle Afectadas: < 0.9.119
Según el registro de la vulnerabilidad en CVE.org, tal como lo publicó el fabricante. Confirma tu versión exacta en el aviso del fabricante.
Referencias
- Referencia en github.comgithub.com/jhuckaby/Cronicle/security/advisories/GHSA-vh39-3pcm-2j63
- Referencia en github.comgithub.com/jhuckaby/Cronicle/commit/8b60eb5b041614ab661df50e58e612f5e…
- Referencia en github.comgithub.com/jhuckaby/Cronicle/releases/tag/v0.9.119
Ver el texto original en inglés (CVE.org)
Cronicle: Stored XSS in admin Activity Log via account full_name field
Cronicle is a multi-server task scheduler and runner, with a web based front-end UI. Prior to 0.9.119, the administrator Activity Log in htdocs/js/pages/admin/Activity.js concatenates the attacker-controlled item.user.full_name value into HTML without applying encode_entities and inserts the result through this.div.html. The bundled pixl-server-user input filter can be bypassed by a tag containing a line break because its regular expression does not match newlines. An authenticated non-administrator can update the attacker's own name through /api/user/update using a valid session and current password; when free_accounts is enabled, an anonymous attacker can instead plant the name during self-registration. The stored name executes script in an administrator's session when the Activity Log is opened, enabling administrator takeover and subsequent command execution through privileged Cronicle features. This issue is fixed in version 0.9.119.