Vulnerability · Published Dec 18, 2024 · Assigned by GitHub_M
CVE-2024-55603Insufficient session invalidation in Kanboard
Medium 6.5
In plain English
A medium-severity security flaw in kanboard from kanboard. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.5% (higher than 44% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official 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.
Affected packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian:14 | kanboard | 1.2.44+ds-1 | DEBIAN-CVE-2024-55603 |
Affected products (as reported)
Weakness: CWE-613 · Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
References
- https://github.com/kanboard/kanboard/security/advisories/GHSA-gv5c-8pxr-p484 x_refsource_CONFIRM
- https://github.com/kanboard/kanboard/commit/7ce61c34d962ca8b5dce776289ddf4b207be6e78 x_refsource_MISC
- https://github.com/kanboard/kanboard/blob/main/app/Core/Session/SessionHandler.php#L40 x_refsource_MISC
- https://www.php.net/manual/en/function.session-start.php x_refsource_MISC
- https://www.php.net/manual/en/session.configuration.php#ini.session.gc-divisor x_refsource_MISC
- https://www.php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime x_refsource_MISC
- https://www.php.net/manual/en/session.configuration.php#ini.session.gc-probability x_refsource_MISC
- https://www.php.net/manual/en/sessionhandlerinterface.gc.php x_refsource_MISC