Pocket ID email verification token survives address change
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- High · High · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-345.
Summary
Pocket ID from 2.2.0 before 2.12.0 binds email verification tokens only to the user identifier, so a token stays valid after the account email changes (CWE-345). A user with an ordinary account requests a token for an address they control, changes the account to an unused address, and redeems the old token to get the new address marked as verified. Applications that trust verified emails for account matching can link the attacker's identity to another user's account.
Written with Claude Haiku 5.5 from the sources below · 2026-11-04
Description from the CNA
Pocket ID is an OIDC provider that allows users to authenticate with their passkeys to services. From 2.2.0 until 2.12.0, SendEmailVerification uses the token model in backend/internal/model/email_verification_token.go to bind an email-verification token only to the user's identifier, while UpdateUser can change the account email without invalidating the outstanding token and VerifyEmail marks the current address as verified. An ordinary user can request a token for an address they control, change the account to an arbitrary unused address, and redeem the old token so Pocket ID publishes the new address with email_verified set to true. The default affected configuration uses emailsVerified=false and allowOwnAccountEdit=true; the target address must not already belong to another Pocket ID user. A relying application that trusts a verified email for automatic account matching or provisioning can link the attacker's identity to another user's account, while applications that rely exclusively on the stable OIDC sub claim are not affected by that downstream consequence. This issue is fixed in version 2.12.0.
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
Remediation
Upgrade Pocket ID to version 2.12.0, which fixes this issue.
Written with Claude Haiku 5.5 from the sources below · 2026-11-04
- Fix · CNA pocket-id (pocket-id) Fixed in 2.12.0
Timeline
- 2026-11-04 Threatist record created from CVE-2026-115770
References
More pocket-id vulnerabilities
- TI-2026-32027 Pocket ID: OIDC refresh token flow bypasses authorization revocation, account disabling, and group restrictions CVSS 4.0HIGH 8.5
- TI-2026-22775 Pocket ID: OIDC authorization code validation uses AND instead of OR, allowing cross-client token exchange CVSS 3.1HIGH 8.5
- TI-2026-40301 Pocket ID: Open Redirect on the OIDC /authorize page via unvalidated redirect_uri with prompt=none CVSS 3.1MEDIUM 4.3
- TI-2026-85256 Missing audience validation in Pocket ID client credentials grant CVSS 3.0HIGH 7.7
- TI-2026-22774 Pocket ID: OAuth redirect_uri validation bypass via userinfo/host confusion CVSS 3.1HIGH 7.1
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences