CVE-2024-55603
Vulnérabilité moyenne dans kanboard (kanboard)
Description
Kanboard is project management software that focuses on the Kanban methodology. In affected versions sessions are still usable even though their lifetime has exceeded. Kanboard implements a cutom session handler (`app/Core/Session/SessionHandler.php`), to store the session data in a database. Therefore, when a `session_id` is given, kanboard queries the data from the `sessions` sql table. At this point, it does not correctly verify, if a given `session_id` has already exceeded its lifetime (`expires_at`). Thus, a session which's lifetime is already `> time()`, is still queried from the database and hence a valid login. The implemented **SessionHandlerInterface::gc** function, that does remove invalid sessions, is called only **with a certain probability** (_Cleans up expired sessions. Called by `session_start()`, based on `session.gc_divisor`, `session.gc_probability` and `session.gc_maxlifetime` settings_) accordingly to the php documentation. In the official Kanboard docker image these values default to: session.gc_probability=1, session.gc_divisor=1000. Thus, an expired session is only terminated with probability 1/1000. This issue has been addressed in release 1.2.43 and all users are advised to upgrade. There are no known workarounds for this vulnerability.
Gravité et risque d'exploitation
CVE-2024-55603 obtient un score CVSS de 6.5/10, soit une gravité moyenne. Selon le modèle EPSS, la probabilité qu'elle soit exploitée dans les 30 prochains jours est de 0.52 %, ce qui la place devant 42.7 % des CVE référencées.
Que faire ?
- Vérifiez si kanboard (versions < 1.2.43) est présent sur votre parc.
- Appliquez le correctif ou la version corrigée indiqués dans les références de l'éditeur.
- À défaut de correctif, limitez l'exposition (filtrage réseau, désactivation du composant).
- Automatisez la détection : les agents CVE Heimdall (gratuits, open source) corrèlent l'inventaire de vos serveurs avec la base CVE.
Références
- https://github.com/kanboard/kanboard/security/advisories/GHSA-gv5c-8pxr-p484
- https://github.com/kanboard/kanboard/commit/7ce61c34d962ca8b5dce776289ddf4b207be6e78
- https://github.com/kanboard/kanboard/blob/main/app/Core/Session/SessionHandler.php#L40
- 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
