CVE-2024-55603 json
Insufficient session invalidation in Kanboard
published 2024-12-18 22 mo ago modified 2026-06-17 4 mo ago also EUVD-2024-52822
- cvss
- 6.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.5%
- EPSS 0.5% chance of exploitation in 30 days, percentile 44%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
CISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 22 mo ago
Exploit prediction
0.52% chance of exploitation in the next 30 days, higher than 44% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/kanboard/kanboard/security/advisories/GHSA-gv5c-8pxr-p484 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N |
| NVD | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N |
Affected products
- kanboard kanboard
Classification
- Weakness
-
- CWE-613 DEPRECATED: Insufficient Session Expiration
References
-
github.com
/kanboard/kanboard/commit/7ce61c34d962ca8b5dce776289ddf4b207be6e78
patch
-
github.com
/kanboard/kanboard/security/advisories/GHSA-gv5c-8pxr-p484
exploit, vendor-advisory
-
github.com
/kanboard/kanboard/blob/main/app/Core/Session/SessionHandler.php#L40
product
-
php.net
/manual/en/function.session-start.php
product
-
php.net
/manual/en/session.configuration.php#ini.session.gc-divisor
product
-
php.net
/manual/en/session.configuration.php#ini.session.gc-maxlifetime
product
-
php.net
/manual/en/session.configuration.php#ini.session.gc-probability
product
-
php.net
/manual/en/sessionhandlerinterface.gc.php
product
Sources
- CVE List CVE-2024-55603
- NVD CVE-2024-55603
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.