Executive brief
The Student Management System's login handler fails to regenerate session identifiers after successful authentication. An attacker who can set a session ID before a victim logs in can reuse that same ID afterward to hijack the victim's authenticated session and gain unauthorized access to their account, including administrator accounts.
Technical details
The vulnerability is a session fixation flaw in the login.php file's session handling. The vulnerable code calls session_start() and sets SESSION variables for login and user/admin roles, but never invokes session_regenerate_id(true) to rotate the session identifier after successful authentication. The attack requires a PHP configuration with session.use_strict_mode disabled (the default in some deployments), allowing an attacker to supply an arbitrary session ID via PHPSESSID cookie. An attacker can set a known session ID before the victim authenticates, then reuse that ID post-login to access the victim's authenticated session. The application does not use versioning, and the vendor has not yet responded to the early disclosure report.
Affected products
- ningzichun Student Management System up to commit 98760f5711cf6dc8b4adca53a9e207ca49b02ebf (versioning not used)
Timeline
- 2026-07-29: disclosed: Issue #16 opened on GitHub
- 2026-09-08: advisory: CVE-2026-86674 published