A session management vulnerability allows previously issued authenticated sessions to remain valid after sensitive account security changes, specifically password reset and password change. As a result, an attacker who has already obtained a valid session cookie can retain access to the account even after the victim changes or resets their password.
This weakens account recovery and session security guarantees. I reproduced the issue on listmonk v6.0.0.
The application updates account credentials successfully, but existing active sessions are not revoked afterward.
This behavior was confirmed in two flows:
Password reset flow
Authenticated password change flow
From the source review, the reset flow consumes the reset token, updates the password, and creates a fresh session, but there does not appear to be any revocation of older sessions. The same applies to the profile password change flow.
Relevant code areas observed during review:
cmd/auth.go — forgot/reset flowcmd/users.go — authenticated profile update flowinternal/core/users.go — password update pathAdditionally:
/api/profile.Example validation request:
GET /api/profile HTTP/1.1
Host: 127.0.0.1:9000
Cookie: session=<old_pre_reset_session>
Observed result:
Server returns HTTP/1.1 200 OK
Response contains the authenticated user profile
Log in twice as the same user and save two authenticated session cookies:
Using session A, change the password through the authenticated profile update endpoint.
Verify:
Replay session B against an authenticated endpoint such as /api/profile.
Example password change request:
PUT /api/profile HTTP/1.1
Host: 127.0.0.1:9000
Cookie: session=<session_A>
Content-Type: application/json
{
"name":"victim1",
"email":"victim1@test.local",
"password":"VictimChanged123"
}
Then validate session B:
GET /api/profile HTTP/1.1
Host: 127.0.0.1:9000
Cookie: session=<session_B>
Observed result:
HTTP/1.1 200 OKThis issue allows persistence of unauthorized access after credential recovery actions.
If an attacker has already stolen a valid session cookie through any means (for example malware, browser compromise, XSS, shared machine access, proxy leakage, or other session theft), the victim cannot fully recover the account by changing or resetting the password alone. The attacker’s existing session remains valid.
This impacts account recovery expectations and session security for all authenticated users, including users with TOTP enabled.
{
"cwe_ids": [
"CWE-613"
],
"github_reviewed": true,
"github_reviewed_at": "2026-04-01T23:48:43Z",
"nvd_published_at": "2026-04-02T18:16:33Z",
"severity": "HIGH"
}