Pocket ID: Email verification token remains valid after address change, enabling arbitrary verified-email spoofing
Affects Pocket ID from 2.2.0 before 2.12.0 when email verification and self-service account editing are enabled, both defaults. CVSS rates it 9.6 critical, and no separate vendor rating is given. Fixed in 2.12.0.
Written by anthropic/claude-haiku-5.5 from the sources below. Verify against them.
- Exploited
- No known exploitation
- Fix
- Fixed in 2.12.0
- Who is exposed
- Specific setups only
Do first: Check whether your setup matches what the bug needs. Email verification is in use (emailsVerified=false, which is the default). The user can edit their own account (allowOwnAccountEdit=true, which is the default). The target email address is not already assigned to another Pocket ID user.
- Exploitation?/40Exploitation: unknown (data gap). No CISA SSVC exploitation rating yet
- Exposure8/25Specific setups only, reachable over the network
- Reach?/20Reach: unknown (data gap). No tracked technology or package matched
- Severity9.6/10CVSS 9.6
- No patch0/5No signal
What would change the score
- Would score about 68 if added to CISA KEV
- Would score about 63 if CISA's SSVC rates exploitation active
- Would score about 25 if CISA's SSVC rates it automatable
CVE-2026-115770 is not in CISA's Known Exploited Vulnerabilities (KEV) catalog. No public exploit code is tracked. It is rated CVSS 9.6 (critical) and affects pocket-id; fixed in 2.12.0.
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- Published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- A 0-100 score for how much a CVE matters across the industry: exploitation, exposure, how widely the software is used, severity and whether a fix exists.What do these mean? →
- 18/100 · provisional
- How many real-world setups can hit the bug, from the vendor's advisory and CISA data. It does not know your setup.What do these mean? →
- Specific setups only
- Fix
- Fixed in 2.12.0
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
Pocket ID, an OpenID Connect provider that lets users sign in to services with passkeys, lets a regular logged-in user, over the network and without any user action, get an arbitrary unused email address published as verified. Relying applications that trust verified email addresses for automatic account matching or provisioning could then link the attacker's identity to another user's account, although applications that rely only on the stable OIDC sub claim are not affected by that consequence.
Read the original description
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.
What to do
Check whether your setup matches what the bug needs.
Email verification is in use (emailsVerified=false, which is the default). The user can edit their own account (allowOwnAccountEdit=true, which is the default). The target email address is not already assigned to another Pocket ID user.Upgrade to a fixed version: 2.12.0.
Timeline
- CVE published
- First seen by cve.now
- Posted on X by cve.now
Affected versions
- pocket-id pocket-id
From 2.2.0 · fixed in 2.12.0
Evidence 4
- Advisory
- Repository
- Repository
- Repository
Corrections
None so far.
Something wrong on this page? Report an error. Every fix is listed here.
Questions about CVE-2026-115770
Is CVE-2026-115770 being exploited?
It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.Source: cve.now feed data
What does this mean?
A Pocket ID email verification token stays valid after the user changes their email address. Pocket ID can then attest control of an arbitrary unused email address with email_verified set to true. Relying applications that trust that claim for account matching could let someone take over another user's account.Source: github.com
Which versions are affected by CVE-2026-115770?
pocket-id: from 2.2.0 before 2.12.0.Source: cve.now feed data
Am I affected, and how do I check?
Pocket ID versions from 2.2.0 up to but not including 2.12.0 are in the affected range. The setup matters: the bug requires emailsVerified=false, which is the default, and allowOwnAccountEdit=true, which is also the default, and the target address must not already belong to another Pocket ID user. Check the installed version and these two settings in your configuration.Source: github.com
How do I fix CVE-2026-115770?
Upgrade Pocket ID to 2.12.0 or later, the first fixed version listed for this issue.Source: github.com