Summary The application allows users to set weak passwords (e.g., 1234, password) without enforcing minimum strength requirements. Additionally, active sessions remain valid after a user changes their password.
An attacker who compromises an account (via brute-force or credential stuffing) can maintain persistent access even after the victim resets their password.
Details
Attack scenario:
Attacker guesses or obtains weak credentials. Logs in and obtains active session token. Victim changes password. Attacker continues accessing the account using the old session.
Steps to Reproduce
1. Register using a weak password (e.g., 12345678 ). 2. Log in and Password Change functionality. 3. Change account password with single character (e.g., 1 or a ) 4. Reuse the old session. 5. Observe that access is still granted.
Impact
The combination of weak password controls and improper session invalidation significantly increases both exploitability and impact.
Recommendation Password Policy Improvements:
Session Management Fix:
Implementing both controls will significantly reduce the risk of persistent account compromise.
<img width="1918" height="907" alt="Weak Password Policy Combined with Persistent Sessions After Password Change POC" src="https://github.com/user-attachments/assets/f188b69b-0472-4d2c-aeda-c145384c99ef" />
A fixed version is available at https://github.com/go-vikunja/vikunja/releases/tag/v2.0.0.
{
"github_reviewed": true,
"cwe_ids": [
"CWE-521",
"CWE-613"
],
"github_reviewed_at": "2026-02-25T22:02:37Z",
"nvd_published_at": null,
"severity": "CRITICAL"
}