CVE-2026-104084: SmarterMail < Build 9777 Stale JWT Role Claim Privilege Escalation via Refresh Token
SmarterMail before build 9777 contains a privilege escalation vulnerability where JWT access and refresh tokens embed a role claim at issuance that is not revalidated against the account's current role when redeemed through POST /api/v1/auth/refresh-token. Attackers who capture a refresh token issued before an administrator demotion, or a demoted user whose session was not actively polling at the time of demotion, can replay the stale token to obtain a new access token retaining the higher-privilege role (such as DomainAdmin or SysAdmin) until natural token expiry.
Affected Software
Event History
Frequently Asked Questions
Does exploitation require prior access or credentials?
Yes. Exploitation requires a captured refresh token that was issued while the account held a higher-privilege role. The attacker then redeems that token through POST /api/v1/auth/refresh-token.
Which accounts or sessions create the main exposure?
Accounts demoted from roles such as DomainAdmin or SysAdmin are exposed if they retain a refresh token issued before demotion. A demoted user whose session was not actively polling when the demotion occurred may also retain a usable stale token.
How long can a stale token preserve elevated access?
A replayed stale refresh token can obtain a new access token retaining the prior higher-privilege role until the token reaches its natural expiry.