Vulnerabilidad en Kanboard (CVE-2024-55603)
Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
19/12/2024
Última modificación:
12/03/2025
Descripción
Kanboard es un software de gestión de proyectos que se centra en la metodología Kanban. En las versiones afectadas, las sesiones aún se pueden utilizar aunque su vida útil haya excedido. Kanboard implementa un gestionador de sesión personalizado (`app/Core/Session/SessionHandler.php`), para almacenar los datos de la sesión en una base de datos. Por lo tanto, cuando se proporciona un `session_id`, Kanboard consulta los datos de la tabla SQL `sessions`. En este punto, no verifica correctamente si un `session_id` dado ya ha excedido su vida útil (`expires_at`). Por lo tanto, una sesión cuya vida útil ya es `> time()`, aún se consulta desde la base de datos y, por lo tanto, es un inicio de sesión válido. La función **SessionHandlerInterface::gc** implementada, que elimina sesiones no válidas, se llama solo **con cierta probabilidad** (_Limpia sesiones caducadas. Llamada por `session_start()`, basada en las configuraciones `session.gc_divisor`, `session.gc_probability` y `session.gc_maxlifetime`_) de acuerdo con la documentación de php. En la imagen oficial de Docker de Kanboard, estos valores predeterminados son: session.gc_probability=1, session.gc_divisor=1000. Por lo tanto, una sesión caducada solo se termina con una probabilidad de 1/1000. Este problema se ha solucionado en la versión 1.2.43 y se recomienda a todos los usuarios que actualicen. No existen workarounds conocidos para esta vulnerabilidad.
Impacto
Puntuación base 3.x
6.50
Gravedad 3.x
MEDIA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:a:kanboard:kanboard:*:*:*:*:*:*:*:* | 1.2.43 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://github.com/kanboard/kanboard/blob/main/app/Core/Session/SessionHandler.php#L40
- https://github.com/kanboard/kanboard/commit/7ce61c34d962ca8b5dce776289ddf4b207be6e78
- https://github.com/kanboard/kanboard/security/advisories/GHSA-gv5c-8pxr-p484
- https://www.php.net/manual/en/function.session-start.php
- https://www.php.net/manual/en/session.configuration.php#ini.session.gc-divisor
- https://www.php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime
- https://www.php.net/manual/en/session.configuration.php#ini.session.gc-probability
- https://www.php.net/manual/en/sessionhandlerinterface.gc.php